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

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

app.use(express.bodyParser()); 

然后我想删除bodyParser()为一个特定的路线为例:

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

谢谢

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

 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()));