在快递应用程序res.render上重定向太多

时间:2016-04-11 21:20:07

标签: javascript node.js express internationalization

我尝试将我的首页的/路由重定向到来自i18n中间件的查询参数字符串,因为我正在翻译我的网站:

app.use('/', function (req, res) {
  res.redirect('/' + req.getLocale());
});
app.use('/:lang', index);

所以我希望从/重定向到/hu

我正在使用i18n-node中间件插件。文档中所需的部分位于:https://github.com/mashpie/i18n-node#i18ngetlocale

然而,这导致了太多重定向,并且网站未加载ERR_TOO_MANY_REDIRECTS错误。这是控制台输出:

GET / 302 18.685 ms - 50
GET /hu 302 4.789 ms - 50
GET /hu 302 3.312 ms - 50
GET /hu 302 4.679 ms - 50
GET /hu 302 2.234 ms - 50
GET /hu 302 4.708 ms - 50
GET /hu 302 3.040 ms - 50
...

造成这种情况的原因是什么?

修改

这是我的索引路由器:

router.get('/', function (req, res, next) {
  fsAsync(function (err, data) {
    if (err) {
      return res.render('404', {
        titleShown: true,
        title: 'Error 404',
        description: 'Error 404',
        keywords: 'error,404'
      });
    }

    var gallery = data[0].gallery.portfolio.love;
    //var json = gallery;
    //console.log(json);

    var articles = data[1].articles.reverse();
    var slice = articles.slice(0, 6);
    var json = [{ articles: slice }];

    res.render('index', {
      //layout: 'main',
      titleShown: false,
      title: 'Hi!',
      description: 'Home page',
      keywords: 'wedding,photography,film,lantos,istvan',
      data: gallery,
      latestPosts: json
    });
  });
});

如果有人想深入了解,请参阅我的app.js:https://github.com/DJviolin/lantosistvan/blob/3573390386ea4fe5b7f418b3fbaa118673b6b6d6/app.js

只需更改路线顺序,因为我想要重定向的位置尚不存在:

app.use('/:lang', index);
app.use('/', function (req, res) {
  res.redirect('/' + req.getLocale());
});

更新

有人可以向我解释,如果我比其他人提前4个月发布这个副本我的问题是什么?

0 个答案:

没有答案