通过Express

时间:2017-12-13 08:18:03

标签: node.js express

我正在开发一个Web服务,而我是服务器来管理语言(Accept-Language)中的内容协商。我真的不知道我们在Express中的表现。但我做了一些代码:

router.all('/*', (req, res, next) => {
  var enFrancais = true
  var languagesAsked = req.headers["accept-language"]
  languagesAsked = languagesAsked.split(',')
  var languages = []
  for (var languagesAsked of languagesAsked) {
    try {
      languages.push({language: languagesAsked.split(";")[0],
                      pref:     languagesAsked.split(";")[1].split("=")[1]})
    } catch(err) {
      languages.push({ language: languagesAsked, pref: "1"})
    }
  }
  _.sortBy(languages, "pref")
  if(!languages[0].language.startsWith('fr')) {
    enFrancais = false
  }
  next() //next(enFrancais) don't works. => ERR 500
});

router.get('/', (req, res, next) => {
  var APIconfiguration = {
  version: "0.1",
  baseUrl: "/api",
  date: new Date(),
  responseLanguage: enFrancais
  }
  res.send(APIconfiguration)
});

如果HTTP标头的true标题显示"第一个路由器返回Accept-Language,我更喜欢法语"或false,如果没有。

我希望在服务的每次调用中,这个路由器(或中间件,如果它必须是一个)管理这个HTTP头(不写这个代码两次。)

我可以正确地将数据从第一部分传递到第二部分吗?

感谢阅读。

1 个答案:

答案 0 :(得分:0)

感谢@ alex-rokabilis的回答。

我使用req.myVariable传递数据:)