【发布时间】:2016-11-06 11:50:41
【问题描述】:
给定以下架构
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var favoriteSchema = new Schema({
dishes: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Dish'
}],
postedBy: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
}, {
timestamps: true
});
var Favorites = mongoose.model('Favorite', favoriteSchema);
module.exports = Favorites;
和下面的路由器
var bodyParser = require('body-parser');
var express = require('express');
var mongoose = require('mongoose');
var Favorites = require('../models/favorites');
var Verify = require('./verify');
var favoritesRouter = express.Router();
favoritesRouter.use(bodyParser.json());
favoritesRouter.route('/')
.post(Verify.verifyOrdinaryUser, function(req,res,next){
req.body.postedBy = req.decoded._doc._id;
console.log('nana ' + req.body.postedBy);
Favorites.create(req.body,function(err,fav){
if(err) throw err;
fav.dishes.push(req.body);
fav.save(function(err,fa){
if(err) throw err;
res.json(fa);
})
});
});
module.exports = favoritesRouter;
每次我执行邮递员的要求时,我都会将菜肴 ID 附加到请求的正文中。
{
"_id": "577a996155d73cf02b0d516f"
}
我想不出将这个 ID 插入到数组中的解决方案,而不是重新创建整个对象,数组中只有 1 个 id。我是在做错什么,还是必须做其他事情才能执行我想要的逻辑?
【问题讨论】:
-
您正在使用
req.body,就像它既是favorite又是dish。是哪个?
标签: node.js mongoose routes mongoose-populate