在Node JS路由中重定向到另一个路径

6
当用户尝试打开Node.js路由文件route.js中的代码段时: app.use('/demo1', require('express').static(__dirname + '/demo1')); 我想要重定向到: app.use('/demo2', require('express').static(__dirname + '/demo2')); 就像在浏览器中输入http://locahhost:5010/demo1这个URL一样,
但实际上会打开http://locahhost:5010/demo2这个URL。
4个回答

20

在你的路由中使用重定向 Express 重定向

示例:

app.get('/demo1', function(req, res) {
 res.redirect('/demo2');
});

3
app.use((req, res, next) => {
 if (req.url == '/') {
  res.redirect('/en');
  return;
 }
  next();
})

我曾经也遇到过这个问题,我不得不在调用 return next() 前使用它。

1
您可能创建了一个路由。要修复,请将关于路由器更改为以下内容:
app.get('/demo1', function(req, res) {
 res.redirect('/demo2');
});

如果您的路由在不同的文件中,您也可以尝试这个方法。假设我们在路由文件夹中有demo1route.js文件。
var express = require('express');
var router = express.Router();    
router.get('/', function(req, res) {
 res.render('/demo2');
});

然后在app.js中使用以下代码:

var demo1 = app.require('../demo1route.js')    
app.use('/demo1',demo1);

0
app.get('/demo1', function(req, res) {
 res.redirect('/demo2');
});

如果/demo2是一个GET请求路由器,那么这应该可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接