2017-02-18 55 views
0

我正在构建我的第一个多语言应用程序。通过Middelware成功检测语言并将其附加到req.lang。作为下一步,是否有任何方法可以本地化路由路径?这对SEO很有用。根据语言动态设置rotue /路径名称

这里有什么样的ususa方法?

const paths = { 
    en: { 
    index: 'home', 
    imprint: 'imprint' 
    }, 
    de: { 
    index: 'start', 
    imprint: 'impressum' 
    }, 
    nl: { 
    index: 'stchartje', 
    imprint: 'imprintjn' 
    } 

} 

router.get('/'+paths[req.lang].imprint, function(req, res, next) { 
    res.render('index', { title: content[req.lang].IMPRINT.HEADLINE }); 
}) 

那是什么我想出现在,它不工作,虽然,因为“请求”没有在路由定义evailable。

回答

1

您可以使用params

router.get('/:slug', function(req, res, next) { 
    if (req.params.slug === paths[req.lang].imprint) { 
     res.render('index', { title: content[req.lang].IMPRINT.HEADLINE }); 
    } else { 
     next(); 
    } 

}) 
+0

谢谢哥们,这工作得很好。你认为这在性能方面也可以吗? – Seltsam

+0

我没有看到任何性能问题。 –

+0

好,再次感谢好友! :-) – Seltsam