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

Creating Express param middleware that updates the request object

本文关键字:Express 参数 中间件 对象 更新 请求 创建      更新时间:2023-09-26

我正在尝试更新请求。之前的会话由另一个名为read的函数处理。我知道中间件在读取之前被调用,但是当我记录请求时。会话对象,它不反映中间件中所做的更新。

/**
* 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();
    });
};

您的中间件回调中的id参数来自哪里?如果它是一个url参数(例如/conversations/:id),它应该是req.params.id