red*_*ben 11 connect node.js express
我正在尝试制作一个用于处理url别名的中间件,我现在正在做的是:
// [...]
module.exports = function() {
return function(req, res, next) {
// getAlias would get an object {alias:"alias/path",source:"/real/path"} or null
var alias = getAlias(req.url);
if(alias) {
req.url = alias.source;
}
next();
};
};
Run Code Online (Sandbox Code Playgroud)
所以基本上我在商店中寻找所请求的URL,如果它被发现是别名,我将request.url更改为该别名的源路径,以便express表示正确的路由.
问题是request.url和request.path具有相同的值,但是request.url工作时更改request.path不起作用.另外我不确定我要再试一次.
当我与request.url交互时,事情很有效,但只是想确保我以正确的方式做到这一点.
有什么想法吗 ?
hex*_*ide 13
重写req.url属性是内部重新路由请求的正确方法.这就是为什么有人req.originalUrl改变原始URL的原因.
这是Express文档声明的内容req.originalUrl:
此属性非常类似
req.url,但它保留了原始请求URL,允许您req.url自由重写以进行内部路由.
该req.url属性没有记录,但从上面的陈述,您可以推断它的意思是按照您解释的方式使用.在某些Express测试中也以这种方式使用它.
| 归档时间: |
|
| 查看次数: |
3276 次 |
| 最近记录: |