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

所以我build立了一个Node / Express服务器,并且我们正在从子目录转换到子域进行本地化,例如:

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

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

如果我有一个简单的build立这样的路线:

 app.use('/search') 

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

 app.use('*/search') 

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

如果您使用的是Express 4,则可以使用模块化路由创build一组路由,然后可以在不同的区域设置代码之间共享这些路由。 这将确保您只将路线应用于特定区域代码,而不是路线之前的所有可能字词(如/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); // ...