我正在开发一个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头(不写这个代码两次。)
我可以正确地将数据从第一部分传递到第二部分吗?
感谢阅读。
答案 0 :(得分:0)
感谢@ alex-rokabilis的回答。
我使用req.myVariable传递数据:)