Ссылки MongoDB с Node.js я не могу заполнить

Я хочу показать информацию о местоположении пользователя на экране.

Например:

name: "Andy" surname : "Carol" City : "Istanbul"  Town : "Kadıkoy"

Когда я вызываю функцию getuser, я хочу отобразить название города и города.

Это мой код:

UserSCHEMA

// Model for the User 
module.exports = (function userSchema() {

  var Mongoose = require('mongoose');
  var Schema = Mongoose.Schema;

  var userSchema = new Schema({

    name: {
      type: String,
      require: true
    },
    surname: {
      type: String,
      require: true
    },
    tel: {
      type: String,
      require: true
    },
    age: {
      type: String,
      require: true
    },
    mevki_id: {
      type: String,
      require: true
    },
    lok_id: [{
      type: Mongoose.Schema.Types.ObjectId,
      ref: 'locations'
    }]

  });

  var collectionName = 'users';
  var USERSCHEMA = Mongoose.Schema(userSchema);
  var User = Mongoose.model(collectionName, USERSCHEMA);

  return User;

})();

USERController

//This Controller deals with all functionalities of User
function userController() {

  var User = require('../models/UserSchema');

  // Creating New User
  this.createUser = function (req, res, next) {

    var name = req.body.name;
    var surname = req.body.surname;
    var tel = req.body.tel;
    var age = req.body.age;
    var mevki_id = req.body.mevki_id;
    var lok_id = req.body.lok_id;

    User.create({
      name: name,
      surname: surname,
      tel: tel,
      age: age,
      mevki_id: mevki_id,
      lok_id: lok_id
    }, function (err, result) {
      if (err) {
        console.log(err);
        return res.send({
          'error': err
        });
      } else {
        return res.send({
          'result': result,
          'status': 'successfully saved'
        });
      }
    });
  };

  //Populateeee

  this.getUser = function (req, res, next) {

    User.find().populate('lok_id')
      .exec(function (err, result) {
        if (err) {
          console.log(err);
          return res.send({
            'error': err
          });
        } else {
          return res.send({
            'USERS': result
          });
        }
      });
  };

  return this;

};

module.exports = new UserController();

Схема расположения

//Schema for Location
module.exports = (function LocationSchema() {

  var Mongoose = require('mongoose');
  var Schema = Mongoose.Schema;

  var LocationSchema = new Schema({

    userid: {
      type: Mongoose.Schema.Types.ObjectId,
      ref: 'users'
    },

    il: {
      type: String,
      require: true
    },

    ilce: {
      type: String,
      require: true
    }

  });

  var collectionName = 'locations';
  var LocationSCHEMA = Mongoose.Schema(schema);
  var Location = Mongoose.model(collectionName, LocationSCHEMA);

  return Location;
})();

Контроллер местоположения

//This Controller deals with all functionalities of Location
function locationController() {
  var location = require('../models/LocationSchema');

  // Creating New Location
  this.createLocation = function (req, res, next) {
    var userid = req.params.userid;
    var il = req.params.il;
    var ilce = req.params.ilce;

    location.create({
      userid: userid,
      il: il,
      ilce: ilce
    }, function (err, result) {
      if (err) {
        console.log(err);
        return res.send({
          'error': err
        });
      } else {
        return res.send({
          'result': result,
          'status': 'successfully saved'
        });
      }
    });
  };

  // Fetching Details of Location
  this.getLocation = function (req, res, next) {

    location.find({}, function (err, result) {
      if (err) {
        console.log(err);
        return res.send({
          'error': err
        });
      } else {
        console.log(result);
        return res.send({
          'location Details': result
        });
      }
    });
  };

  return this;

};

module.exports = new locationController();

person MAD    schedule 20.12.2016    source источник
comment
Схема расположения i.imgsafe.org/93f9ceb4fa.jpg LocationController i.imgsafe.org/93f9b72897.jpg   -  person MAD    schedule 20.12.2016
comment
Код лучше включать в виде текста, а не в виде скриншотов, размещенных на внешнем сайте.   -  person Anton Samsonov    schedule 20.12.2016
comment
я отредактировал спасибо   -  person MAD    schedule 20.12.2016


Ответы (1)


У меня уже была проблема с определением модели. Это было исправлено путем добавления третьего параметра в mongoose.model (явное имя коллекции).

// Try to replace :
var collectionName = 'users';	
var USERSCHEMA=Mongoose.Schema(userSchema);
var User = Mongoose.model(collectionName, USERSCHEMA);
// with:
var collectionName = 'users';	
var USERSCHEMA=Mongoose.Schema(userSchema);
var User = Mongoose.model(collectionName, USERSCHEMA, collectionName);
the collectionName must be set either in the schema definition or in the model definition. for more details see here

person Roge    schedule 21.12.2016
comment
Вы говорите правильно, но моя функция создания пользователя неверна. Можете ли вы взглянуть на эту функцию в пользовательском контроллере? - person MAD; 21.12.2016