使用req.url和app.use更改路由之间有什么区别?

时间:2019-11-04 11:59:31

标签: node.js express next.js

我正在创建一个Next.js应用程序,我们在其中使用一个定制的Express服务器,其中将Next.js作为中间件来处理SSR并从页面文件夹中路由出去。

我希望index.js文件的基本URL是'/foo'而不是'/',最初希望使用app.use()作为中间件。见下文。

app.use('/foo', () => {
  const router = express.Router();
  router.get('/', (req, res) => {
    // do stuff on this route
  });
});

这行得通,这意味着如果我点击'/foo',我将进入通常由Next.js在'/'上投放的index.js页面。

但是,我还注意到我可以像下面那样重新分配req.url,我想知道是否有反对这样做的理由。

app.get('/', (req, res) => res.redirect('/foo');

app.get('/foo', (req, res) => {
  req.url = '/';
  // do stuff on this route
});

在路由中使用req.url重新分配是否存在问题?我们使用app.use()而不是req.url = '/'的原因是什么?

0 个答案:

没有答案