Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过Heroku获取客户端IP地址_Javascript_Node.js_Express_Heroku - Fatal编程技术网

Javascript 通过Heroku获取客户端IP地址

Javascript 通过Heroku获取客户端IP地址,javascript,node.js,express,heroku,Javascript,Node.js,Express,Heroku,我有一个带有Cloudflare的Heroku应用程序,我尝试根据客户端的本地化显示不同的版本。 它在开发过程中运行良好,但在生产过程中并非如此(始终显示/en,而不是/fr)。 我使用express ip npm软件包 守则: const express = require('express'); const router = express.Router(); const expressip = require("express-ip"); router.use(expressip().

我有一个带有Cloudflare的Heroku应用程序,我尝试根据客户端的本地化显示不同的版本。 它在开发过程中运行良好,但在生产过程中并非如此(始终显示
/en
,而不是
/fr
)。 我使用express ip npm软件包

守则:

const express = require('express');
const router = express.Router();

const expressip = require("express-ip");

router.use(expressip().getIpInfoMiddleware);

router.get("/", function ipFrance(req, res) {
  const ipInfo = req.ipInfo;
  const ipInfoRegion = req.ipInfo.region;
  const ipInfoCountry = req.ipInfo.country;

  //var message = `Hey, you are browsing from ${ipInfoRegion}, ${ipInfoCountry}`;
  if(ipInfoCountry == "FR" || ipInfoRegion == "Wallonia") {
      res.redirect("/fr");
  } else {
      res.redirect("/en");
  }
});

module.exports = router; 

不要提供基于IP地址的翻译,以及使用该标头的express API方法:

router.get("/", function (req, res) {
  if (req.acceptsLanguages("fr")) {
    res.redirect("/fr");
  } else {
    res.redirect("/en");
  }
});

一些法国本地人可能喜欢用英语浏览,而世界其他地方可能更喜欢用法语浏览。让他们自己做决定,不要为他们做决定。

不要提供基于IP地址的翻译,以及使用该标头的express API方法:

router.get("/", function (req, res) {
  if (req.acceptsLanguages("fr")) {
    res.redirect("/fr");
  } else {
    res.redirect("/en");
  }
});

一些法国本地人可能喜欢用英语浏览,而世界其他地方可能更喜欢用法语浏览。让他们自己做决定,不要为他们做决定。

非常感谢您的回答!是的,我想自动选择语言,但是用户可以直接选择,谢谢你的回答!是的,我想自动选择语言,但是用户可以直接选择