簡體   English   中英

當需要另一個文件的模式時,Mongoose Populate返回未定義的

[英]Mongoose Populate returning undefined when requiring schema from another File

我正在制作一個節點應用程序。 用戶可以擁有自己喜歡的房間列表(就像願望清單一樣)。 我正在嘗試將列表ID添加到用戶喜歡的列表中,但始終會給出未定義的列表。 如果我做“ console.log(users.favoriteListings);” 輸出變得不確定。 請幫忙。

listingModel.js

var mongoose = require("mongoose");
var Schema = mongoose.Schema;//creating schema


var ListingSchema = new Schema({
location: {//ROOM LOCATION
            type: [Number],  // [<longitude>, <latitude>]
            index: '2d'      // create the geospatial index
    },
}
);


var Listing = mongoose.model('Listing', ListingSchema);

module.exports = Listing;

userModel.js

var mongoose = require("mongoose");
var Schema = mongoose.Schema;//creating schema
var Listing=require('../listing/listingModel');


var UserSchema = new Schema({

favoriteListings :  [{ type: Schema.Types.ObjectId, ref: 'Listing' }],


}

);


var User = mongoose.model('User', UserSchema);


module.exports = User;

userController.js

addFavListing:function(req,res){

//READ TOKEN AND FIND USER ID, IF USER HAS REACHED THIS POINT, THIS MEANS THAT TOKEN ALREADY
//HAS BEEN VERIFIED
var token = req.body.token || req.query.token || req.headers['x-access-token'];
var decoded=jwt.verify(token, app.get('superSecret'));
var id=decoded._doc._id;console.log(id);


User.find({_id:id}).populate('favoriteListings').exec(function(err,users) {
  if (err){ return handleError(err);}
    console.log(users.favoriteListings);

});

您從貓鼬那里獲得了許多用戶。 該數組沒有favouriteListings屬性。 但是數組中的每個用戶都必須具有他的收藏夾列表。

在您的userController中,嘗試用以下命令替換console.log:

console.log(users.forEach(function(user) {
    console.log(user.favoriteListings);
}));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM