创建更新请求对象的Express param中间件

时间:2015-08-19 15:43:47

标签: javascript node.js express

我试图在另一个名为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();
    });
};

1 个答案:

答案 0 :(得分:0)

中间件回调中的id参数来自哪里?如果它是网址参数(例如/conversations/:id),则应为req.params.id