我想知道如何在nodejs express中为翻译url进行路由
我在app.js
有以下路线,我想知道如何以更好的方式做,假设有超过 5 种语言,url 会根据语言而有所不同,但要走相同的路线。如何在 express nodejs 中做。
app.js
app.use(/^/(en|de)/, langRouter);
app.use(/^/(en|de)/((all-services-from|hui-kuan-cong)-(.+)-(to|zhi)-(.+))/, serviceRouter);
app.use('/:lang/route-services-services/:pr', aboutRouter);
app.use('/:lang/ain-jian-wen-ti/:pr', aboutRouter);
frontend urls,
will pass to langRouter
/en
/de
will pass to serviceRouter
/en/all-services-from-sin-to-mal
/de/hui-kuan-cong-sin-zhi-mal
will pass to aboutRouter
/en/route-services-services/fund
/de/ain-jian-wen-ti/fund
app.use(/:locale*, checkLangRouter);
app.use(/:locale/, langRouter);
app.use(/:locale/:slug/, serviceRouter)
app.use('/:locale/:slug/:pr', aboutRouter);
第一个是中间件,用于检查语言环境是否可用。
在每个路由器中,根据区域设置检查 slug。如果它不对应,只需调用 next()
方法...
//aboutRouter.js
module.exports = (req, res, next) => {
const locale = req.params.locale;
const slug = req.params.slug;
const myMapping = {
en: 'about',
fr: 'a-propos',
it: 'attorno'
};
if (myMapping[locale] !== slug) {
// It's not the about route
return next();
}
};
在这种情况下,一个想法是将映射导出到另一个文件中以使其可读......