2017-12-13 2 views
0

웹 서비스를 개발 중이며 언어 (Accept-Language) 용어로 컨텐트 협상을 관리하는 서버를 사용하고 있습니다. 나는 Express에서 우리가 실제로하는 일을 정말로 모른다. HTTP 헤더의 Accept-Language 헤더는 "나는 프랑스 선호"또는 false 아니라면 말한다면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) 
}); 

첫 번째 라우터 반환 true :하지만 몇 가지 코드를 했어요.

나는 (하나가 될하거나 미들웨어가있는 경우)이 HTTP 헤더를 관리하는이 라우터는 서비스의 각 호출에 원하는 (두 번이 코드를 작성하지에.)

내가 처음부터 데이터를 전달할 수 있습니다 두 번째 부분에 제대로 부분?

읽어 주셔서 감사합니다.

+1

사용을 전달하는 req.myVariable을 사용하는 대신 일하고 –

+0

을 req.enFrancais'! 감사합니다 –

답변

0

@ alex-rokabilis에게 감사드립니다.

나는`데이터 :