到另一条相对路径的相对路径?

时间:2016-05-17 10:04:30

标签: node.js express internationalization relative-path relative

所以我设置了Node / Express服务器,我们正在从子目录转换到子域进行本地化,例如:

es.example.com       // old way
www.example.com/es   // new way

出于各种原因这样做,但主要是为了便于在国际化内容中保留JWT登录状态。

我遇到了动态生成的链接问题 - 如何确保它们会保留子目录?

例如,如果我将用户从index.html链接到/user-profile/1000,我该如何维护/es/user-profile/1000?有没有办法有相对路径到其他相对路径?如果这甚至有意义吗?

1 个答案:

答案 0 :(得分:0)

您可以使用重定向到原始路径的中间件解决方案。这是一个基本的例子

var languages = ['en', 'es'], _ = require('lodash');
app.use("/:lang/*", function(req, res, next) {
    console.log(req.params, req.path);
    var found = _.find(languages, function(v) {
        return v === req.params.lang;
    });
    if (!!found) {
        res.redirect('/' + req.params[0]);
    } else {
        next();
    }
});

这将检查所有有效语言,如果识别出一种语言,它将从路径中删除语言并重定向到原始路径减去语言。否则它将继续提供的路径。