我想要/business/:id/menus
在做Post
请求时,将刚刚新保存newMenus
中的_id
向数据库Business
中的menu
插入,但是,当我刚刚对一个新Menus
,怎么样才能获取到它到_id
?
./models/business.js
...var businessSchema = new Schema({ name: {type: String, required: true}, locating: {type: String, required: true}, intro: {type: String, required: true}, menu: {type: Schema.Types.ObjectId, ref: 'Menus'}, created: {type: Date, default: Date.new }, published: {type: Boolean, default: false}, author: {type: Schema.Types.ObjectId, ref: 'Roots'}})...
./models/menus.js
...var menusSchema = new Schema({ name: {type: String, required: true}, intro: {type: String, required: true}, busines: {type: Schema.Types.ObjectId, ref: 'Business'}, created: {type: Date, default: Date.new }, published: {type: Boolean, default: false}, author: {type: Schema.Types.ObjectId, ref: 'Roots'}})...
./api/add.js
router.post('/business/:id/menus', passport.authenticate('bearer',{session: false}), (req,res) => { const data = req.body; if(!data.name || !data.intro || !data.comments) { res.json({ success: false, message: '数据提交不完整' }) } else { Busines.findOne({_id: id},(err,business) => { const newMenus = new Menus({ name: data.name, intro: data.intro, comments: data.comments, busines: id }) newMenus.save((err) => { if(err) { return res.json({ success: false, message: '保存数据失败' }) } res.json({ success: false, message: '保存数据成功' }) }) }) // business.menus.push() } })
解决方案
save有第二个参数data 就是你保存那条的信息
newMenus.save((err,data)=>{ if(!err){ console.log(data._id) }})