Express服务器中语言子域的最佳实践?

时间:2016-05-17 06:52:21

标签: javascript node.js express internationalization

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

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

出于各种原因这样做,但主要是为了便于在国际化内容中保存JWT登录状态。在声明路线时允许这种做法的最佳做法是什么?

如果我的路线设置如下:

app.use('/search')

然后当我尝试点击路线时,例如www.example.com/es/search,我将被重定向到www.example.com/searches将被剥离。但是,这可以修复如下:

app.use('*/search')

我确定这肯定会有一些负面影响吗?人们通常如何通过Express在路线中允许前缀?

1 个答案:

答案 0 :(得分:2)

如果您使用的是Express 4,则可以使用modular routes创建一组路径,然后可以跨不同的区域设置代码共享这些路由。这将确保您只将路由应用于特定的区域设置代码,而不是路由之前的所有可能的字词(例如/fakePath/search)。

// routes.js
var express = require('express');
var router = express.Router();

router.use('/search');

module.exports = router; 


// index.js
var routes = require('./routes');

app.use('/en', routes);
app.use('/es', routes);
// ...