如何相对于快速应用程序根重定向?

bin*_*nki 1 node.js express

我想制作我的应用程序,以便它可以安装在/. 当我阅读 express-4.x 的文档时res.redirect(),它说我有三个选项:

  1. 绝对 URI ( http://example.org/path/nested)
  2. 相对宿主 ( /path/nested)
  3. URI 相对 ( nested)

我没有看到任何与应用程序相关的重定向选项。

应用程序如何安装在另一个应用程序中的示例:

'use strict';

const express = require('express');

const app = express();
module.exports = app;

const subApp = express();
app.use('/subApp', subApp);

subApp.get('/blah/*', (req, res) => {
    if (/dee$/.test(req.url)) {
        res.end('end');
    } else {
        res.redirect('dee');
    }
});
Run Code Online (Sandbox Code Playgroud)

如何重定向到 的根 URI,subApp而不需要其中的代码subApp知道其挂载点?也许有一种方法可以从信息中构建它req

bin*_*nki 6

您可以使用req.baseUrl(我使用的是 express-4.x)手动执行此操作。例如:

subApp.get('/blah/*', (req, res) => {
    if (/dee$/.test(req.url)) {
        res.end('end');
    } else {
        res.redirect(req.baseUrl + '/dee');
    }
});
Run Code Online (Sandbox Code Playgroud)