背景: ユーザーが投票投票を投稿できるアプリ。
User モデルの Polls モデルへの参照を設定するのに少し問題があります。私は mongoose.populate を使用して、世論調査にデータを入力しようとしています。私のルートでは、populate 関数が正しく機能していません (返されたユーザーは null です)。これが私のモデルです...
users.js:
// models/users.js
var mongoose = require('mongoose'),
Poll = require('./poll');
//define the schema for our user model
var userSchema = mongoose.Schema({
local:{
email: String,
password: String,
name: String
},
twitter:{
id: String,
token: String,
name: String
},
polls:[{type: mongoose.Schema.Types.ObjectId, ref:'Poll'}]
});
poll.js:
//load mongoose
var mongoose = require('mongoose'),
User = require('./user');
var pollSchema = mongoose.Schema({
name:String,
options:[String],
creator: {type:mongoose.Schema.Types.ObjectId, ref:'User'}
});
module.exports = mongoose.model('Poll', pollSchema);
これは、人口を実装するルートです...
//require user and poll model
var User = require('../models/user'),
Poll = require('../models/poll');
app.post('/dashboard', isLoggedIn, function(req,res){
var poll = {name: req.body.name,
options: req.body.option,
creator: req.user.local.id};
//create new poll
var newPoll = new Poll();
newPoll.polls = poll;
//find the user with the request id and populate polls reference in User (UserSchema)
User.findById(req.user.local.id)
.populate('polls')
.exec(function(err,user){ // cant figure this out...
if(err){return err;}
console.log(user); // yields null
res.send({success:true, message: "Post Successful!"});
});
});
ヘルプ、アドバイス、アイデアをいただければ幸いです。ありがとう。