gpt4 book ai didi

javascript - 修改中间件-Node.JS中的请求对象

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:35 25 4
gpt4 key购买 nike

我的 Node.JS 应用程序中有一堆中间件,有什么方法可以删除/修改 req.path 并反射(reflect)在下一个中间件中?

如果我的问题含糊不清,如果您需要更多说明,请告诉我?

更新:

即使 req.path = 'foo' 也不会更改该行之后的我的 req.path!

req.path = "foo";
console.log(req.path);// Here still it shows my original req.path not foo!

谢谢

最佳答案

function requestDispatcher() {
//default version was set to v1
var defaultVersion = 'v1',
re = /\/v\d/;
return function(request, response, next) {
var version = request.get('version');
debug(request.url);
// test if request.url has already contained version number
if (!re.test(request.url)) {
// if not define version number in http header then set default version
// otherwise use the version number in the http header
if (version === null || version === undefined) {
request.url = ['/', defaultVersion, request.url].join('');
} else {
request.url = ['/', version, request.url].join('');
}
}
debug(request.url);
next();
};
}

我使用这个技巧将请求分派(dispatch)到指定版本,如果未指定,则路由到默认版本。这对我有用

app.use(requestDispatcher());
app.use('/v1', require('./v1'));
app.use('/v2', require('./v2'));

关于javascript - 修改中间件-Node.JS中的请求对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28933981/

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