use*_*706 7 javascript redirect node.js
我有一个javascript根据URL做不同的事情.为了工作,我需要有一致的URI.
例如,我需要用户始终打开www.site.com/users/bob/而不是www.site.com/users/bob
不幸的是,节点似乎不支持它.
我尝试重定向
router.get('/:user', function(req, res) {
res.redirect('/users/' + req.params.user' + '/');
});
Run Code Online (Sandbox Code Playgroud)
但它只会导致重定向循环,因为带有和不带斜杠的URL似乎都被视为相同.
我怎样才能做到这一点?谢谢!
我想从WITHOUT斜线路由到斜线.另一个问题的答案解决了另一种方式.我不能.substr(-1)我的网址
jnc*_*ton 14
如果其他人正在寻找快速零依赖解决方案,这对我来说很好:
app.get('/:page', function(req, res){
// Redirect if no slash at the end
if (!req.url.endsWith('/')) {
res.redirect(301, req.url + '/')
}
// Normal response goes here
});
Run Code Online (Sandbox Code Playgroud)
您可以通过使用名为express-slash的第三方库来获取此内容。您需要做的就是,
首先,安装库
$ npm install express-slash
Run Code Online (Sandbox Code Playgroud)
并且,将这些添加到您的 app.js 中。
var slash = require('express-slash');
app.use(slash()); // set slash middleware
Run Code Online (Sandbox Code Playgroud)
那么,这就是您的路由器。
router.get('/:user/', function(req, res) {
// do your stuff
});
Run Code Online (Sandbox Code Playgroud)
希望它对您有用。
| 归档时间: |
|
| 查看次数: |
5390 次 |
| 最近记录: |