是否可以在ExpressJS中禁用/删除特定路由的中间件?

时间:2013-10-12 18:01:02

标签: node.js express

我想禁用我之前在app.js中设置的特定中间件,例如:

app.use(express.bodyParser());

然后我想删除特定路线的 bodyParser(),例如:

app.post("/posts/add", Post.addPost);

谢谢

1 个答案:

答案 0 :(得分:29)

您可以编写一个函数来检测条件,如下所示:

function maybe(fn) {
    return function(req, res, next) {
        if (req.path === '/posts/add' && req.method === 'POST') {
            next();
        } else {
            fn(req, res, next);
        }
    }
}

然后修改app.use语句:

app.use(maybe(express.bodyParser()));
相关问题