我试图在另一个名为read的函数处理之前更新req.conversation。我知道在读取之前调用了中间件,但是当我在读取时记录req.conversation对象时,它并不反映中间件中的更新。
/**
* Conversation middleware
*/
exports.conversationByID = function(req, res, next, id) {
if (!mongoose.Types.ObjectId.isValid(id)) {
return res.status(400).send({
message: 'Conversation is invalid'
});
}
Conversation.findById(id).populate('user', 'displayName').populate('readers', 'displayName').exec(function(err, conversation) {
if (err) return next(err);
if (!conversation) {
return res.status(404).send({
message: 'Conversation not available'
});
}
req.conversation = conversation;
next();
});
};
答案 0 :(得分:0)
中间件回调中的id
参数来自哪里?如果它是网址参数(例如/conversations/:id
),则应为req.params.id
。