Javascript 通过Heroku获取客户端IP地址
我有一个带有Cloudflare的Heroku应用程序,我尝试根据客户端的本地化显示不同的版本。 它在开发过程中运行良好,但在生产过程中并非如此(始终显示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().
/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");
}
});
一些法国本地人可能喜欢用英语浏览,而世界其他地方可能更喜欢用法语浏览。让他们自己做决定,不要为他们做决定。非常感谢您的回答!是的,我想自动选择语言,但是用户可以直接选择,谢谢你的回答!是的,我想自动选择语言,但是用户可以直接选择