javascript - Nodejs Express 中翻译 url 的路由

标签 javascript html node.js express middleware

我想知道如何在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();
    }
};

在这种情况下,一个办法是将映射导出到另一个文件中以使其可读......

关于javascript - Nodejs Express 中翻译 url 的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56950001/

相关文章:

javascript - 解析 .txt 文件以使用 jQuery 填充 html 选择

javascript - 我无法执行解压后的 javascript

javascript - onClick 菜单 w/Meny JS

Node.js : Export module

javascript - TypeError : socket. 发出不是一个函数

javascript - 滚动脚本被浏览器阻止

javascript - Oncuechange事件在html的P标签内触发淡入/淡出动画

html - 流体、静态、流体 - 3 行布局

javascript - 重置组合框时隐藏文本框

mysql - 来自 Node.js WebSocket 服务器的间歇性 500 错误