การอ้างอิง MongoDB ด้วย Node.js ฉันไม่สามารถเติมได้

ฉันต้องการแสดงข้อมูลตำแหน่งของผู้ใช้บนหน้าจอ

ตัวอย่างเช่น:

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

เมื่อฉันเรียกใช้ฟังก์ชัน getuser ฉันต้องการแสดงชื่อเมืองและเมือง

นี่คือรหัสของฉัน:

ผู้ใช้SCHEMA

// 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;

})();

USERตัวควบคุม

//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
คุณพูดถูก แต่ฟังก์ชั่นการสร้างผู้ใช้ของฉันผิด คุณช่วยดูฟังก์ชั่นนี้ใน User controller ได้ไหม? - person MAD; 21.12.2016