首页 > 解决方案 > 如何访问 nodejs 文件中的 navigator.language?

问题描述

我想在使用 axios.get 请求调用的节点 js 文件中访问 navigator.language。我尝试在调用 get 请求时从 Reactjs 文件中传递 navigator.language,如下所示:

axios.get('/apps/poe/powerStates', {data: {
        navLanguage : navigator.language
    }});

在浏览了一些链接之后,我认为这将达到我的目的。但是不,这没有将 navigator.language 传递给它检查 navigator.language 的 nodejs 文件:

router.get('/example', async (req, res) => {
    console.log(req.data); // shown as blank - {}
    const {navLanguage} = req.data //thus gives me error
    try{
        ........
    } catch{
           ........
    }
  });

注意:- 我见过一些外部库,例如“locale”,但不打算为此目的使用任何第三方库。

我有什么办法可以做到这一点?

标签: node.jsreactjsaxiosnavigator

解决方案


您正在尝试使用 GET 请求将数据作为正文发送 - 但是 GET 请求没有正文。这就是为什么您的 Node.js 处理程序在正文中看不到任何内容的原因。您应该将数据作为 URL 查询参数传递:

// client side request
axios.get(`/apps/poe/powerStates?lang=${navigator.language}`)

// server side request handler
router.get('/apps/poe/powerStates', async (req, res) => {
  const { lang } = req.query
  ...
}

推荐阅读