node.js - 是否可以禁用/删除 ExpressJS 中特定路由的中间件?

标签 node.js express

我想禁用我之前在 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()));

关于node.js - 是否可以禁用/删除 ExpressJS 中特定路由的中间件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337446/

相关文章:

javascript - 如何更改 Node.js 模块包装器?

node.js - 使用 Passport js、Express 和 mongodb 存储 session

node.js - 在 updateOne() 之后获取更新值

javascript - 如何创建公钥/私钥加密- Node js

javascript - 为什么 POST 方法向服务器发送两次表单数据?

node.js - 发送 200 个响应 header 后 http 请求失败的方法

javascript - 在过滤 node.js 中的所有发布请求之前

javascript - 从 Node js 中的单独文件获取回调

javascript - Node.js 与 MongoDB 驱动程序 - 尝试使用键周围的引号获取有效的 JSON 输出

mysql - 通过 node.js 连接 aws mysql 时总是显示错误