ExpressJS - 根据用户使用不同的路径视图

我有一个使用i18n和Angular CLI的Angular应用程序。 CLI为每种语言创建一个应用程序(和一个不同的文件夹)。我想根据用户会话呈现视图(他/她的语言偏好在他/她的会话中)。ExpressJS - 根据用户使用不同的路径视图

这里是我的文件夹

myapp 

--dist

----en

----fr

,所以我想在视图文件夹设置为结构:

app.set('views', join(__dirname, 'dist')); 

,然后将用户重定向到其语言文件夹。这是一个正确的策略,如果是,我如何将用户重定向到它的文件夹(仅适用于视图)?

回答:

如果我们已经配置快递如下:

app.set('views', path.join(__dirname,'/views')); 

如果你有以下文件结构:

/views/ 

/views/en/welcome.html

/views/fr/welcome.html

/views/en/news/article1.html

/views/fr/news/article1.html

你需要编写得到优先从会话语言中间件,套req.body.preferredLang以一些价值,并在最后呼吁next()

,然后使用该中间件在app.js这样的:

app.use(languageMiddleware); 

最后,你可以呈现这样的:

router.get('/welcome', (req, res, next) => { 

res.render(`${req.body.preferredLang}/welcome`, {});

});

以上是 ExpressJS - 根据用户使用不同的路径视图 的全部内容, 来源链接: utcz.com/qa/264517.html

回到顶部