Node、Express、Mongoose 如何将 doc._id 从函数传递到 next() 中间件
Posted
技术标签:
【中文标题】Node、Express、Mongoose 如何将 doc._id 从函数传递到 next() 中间件【英文标题】:Node, Express, Mongoose how to pass doc._id from a function to next() middleware 【发布时间】:2016-02-01 10:35:53 【问题描述】:路由器:
router.post('/add/someone', ctrl.func1, ctrl.func2);
控制器:
ctrl.func1 = function(req, res, next)
// Save to db
SomeSchemaModel(req.body.data).save(function(err, doc)
if(!err)
// assuming that theres no error
// how can I pass the doc._id
// to the next middleware
// using the next() fucntion?
next();
ctrl.func2 = function(req, res)
// do something with the _id
// from the previous func1
因为我从 ctrl.func2
的 req 和 res 中查找了它,但没有来自之前的 ctrl.func1
的数据。
谢谢!
【问题讨论】:
【参考方案1】:您可以将其附加到您的 req
对象上
ctrl.func1 = function(req, res, next)
// Save to db
SomeSchemaModel(req.body.data).save(function(err, doc)
if(!err)
// assuming that theres no error
// how can I pass the doc._id
// to the next middleware
// using the next() fucntion?
req.docId = doc._id;
next();
ctrl.func2 = function(req, res)
// do something with the _id
// from the previous func1
console.log(req.docId);
【讨论】:
将其附加在 res 上是否明智?或者我应该把它附在req上?有关系吗? 我刚刚修改了它。你应该使用req
。
谢谢!帮助很大。如果你能解释为什么使用 req 那就太好了!不过谢谢。 :)
现在在我看来你可以同时使用,你选择哪一个并不重要。以上是关于Node、Express、Mongoose 如何将 doc._id 从函数传递到 next() 中间件的主要内容,如果未能解决你的问题,请参考以下文章
将图像文件从 React 前端上传到 Node/Express/Mongoose/MongoDB 后端(不工作)
您如何在 Node.js + Express + Mongoose + Jade 中处理表单验证,尤其是嵌套模型
如何通过 Node + Express + Mongoose 中的单选按钮传递布尔值?
如何使用 Node.js、Express 和 Mongoose 进行身份验证?