所以我设置了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/search
,es
将被剥离。但是,这可以修复如下:
app.use('*/search')
我确定这肯定会有一些负面影响吗?人们通常如何通过Express在路线中允许前缀?
答案 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);
// ...