gpt4 book ai didi

node.js - 风 sails .js :remove bodyparser middleware for a specific route

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:12 24 4
gpt4 key购买 nike

有没有办法删除特定路由的中间件

目前所有中间件都列在http.js文件中

[
'startRequestTimer',
'cookieParser',
'session',
'bodyParser',
'passportInit',
'passportSession',
'myRequestLogger',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'router',
'www',
'favicon',
'404',
'500'
]

我想删除特定路由的 bodyParser 中间件

用 sails.js 可以吗?

最佳答案

没有以声明方式执行此操作的机制,但是,您可以在每个路由的基础上禁用中间件。您可以通过覆盖中间件并检查自定义代码中的路由 URL 来完成此操作,类似于 using a separate body parser for XML requests 的解决方案。例如:

// In config/http.js `middleware` property

bodyParser: (function() {
// Initialize a skipper instance with the default options.
var skipper = require('skipper')();
// Create and return the middleware function.
return function(req, res, next) {
// If we see the route we want skipped, just continue.
if (req.url === '/dont-parse-me') {
return next();
}
// Otherwise use Skipper to parse the body.
return skipper(req, res, next);
};
})()

这就是基本思想。当然可以做得更优雅一点;例如,如果您有多个想要跳过的路由,则可以将列表保存在单独的文件中,并根据该列表检查当前 URL。

关于node.js - 风 sails .js :remove bodyparser middleware for a specific route,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44838905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com