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

时间:2017-05-28 00:21:39

标签: node.js express

我想制作我的应用,以便可以将其安装在/以外的某个位置。当我阅读express-4.x的res.redirect()文档时,它说我有三个选择:

  1. 绝对URI(http://example.org/path/nested
  2. 主机相对(/path/nested
  3. URI-relative(nested
  4. 我没有看到应用程序相对重定向的任何选项。

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

    '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');
        }
    });
    

    如何重定向到subApp的根URI,而不需要subApp中的代码知道其挂载点?也许我可以通过req中的信息来构建它?

1 个答案:

答案 0 :(得分:3)

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

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