我可以传递一个参数到Mongoose中的findbyid()函数

我有一个variables用户 ,我想推入一个快速更新请求中的用户数组。

router.put( '/projectUser/:id', function( req, res ) { var projectid = req.params.id; var users = req.body.project.users; var user = req.body.user; return ProjectProfile.findById( projectid, function( err, project, user ) { console.log(user); console.log(project); project.users.push(user); return project.save( function( err ) { if( !err ) { console.log( 'Project Users updated' ); return res.send( project ); } else { console.log( err ); return res.send('ERROR'); } }); }); }); 

在这个例子中,variables用户将被推送到用户数组中,因为它超出了范围。

有没有办法将variables用户作为findById函数中的parameter passing?

无法完全理解这个问题,但我想你正在尝试将userId值(req.body.user)添加到ProjectProfile模型的users (Array)属性中。 是对的吗?

如果是这样的话,我相信你的代码应该看起来像这样(我留下validation,错误检查,重复检查等,所以只能用作参考)

 router.put('/projectUser/:id', function(req, res) { return ProjectProfile.findById(req.params.id, function(err1, project) { project.users.push(req.body.user); return project.save(function(err2) { return res.send('OK'); }); }); }); 

请检查Model#findById文档,您的save()callback需要2个参数,而不是3个。