gpt4 book ai didi

javascript - 通过nodejs将nginx headers传递给客户端

转载 作者:行者123 更新时间:2023-12-01 03:58:35 25 4
gpt4 key购买 nike

我试图找出将用户的 geoIP 信息传递给客户端 JavaScript 的最佳方法。我已经为此配置了 nginx,并且能够将信息发送到我的 Node + Express 服务器。

我不知道下一步是什么。通过谷歌搜索,我可以看到我尝试发送的 header 无法直接被客户端的 js 读取。

这就是我所拥有的——

Nodejs--

router.get('/', function(req, res, next) {
res.setHeader("geoip_country_code", req.headers.geoip_country_code);
res.setHeader("geoip_city", req.headers.geoip_city);
res.render('index', { title: 'bla' });
console.log(req.headers);
});

Nginx --

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header GEOIP_COUNTRY_CODE $geoip_country_code;
proxy_set_header GEOIP_CITY $geoip_city;
proxy_set_header GEOIP_LATITUDE $geoip_latitude;
proxy_set_header GEOIP_LONGITUDE $geoip_longitude;
proxy_pass http://app:3000;
}

最佳答案

经过更多的谷歌搜索后,我回答了我自己的问题。

res.locals是在 Express 中执行此操作的最佳方法。

所以现在我在服务器上正在做 -

router.get('/', function(req, res, next) {
res.locals.geoip_country_code = req.headers.geoip_country_code;
res.locals.geoip_city = req.headers.geoip_city;
res.render('index', { title: 'bla' });
console.log(req.headers);
});

在我的 Jade 模板中,我有 --

script(type='text/javascript').
var geoip_city =!{JSON.stringify(geoip_city)}
var geoip_country_code = !{JSON.stringify(geoip_country_code)}

来源:so/10919650/ (有点吓人,这个问题大约 5 年前就已经得到了回答!)

关于javascript - 通过nodejs将nginx headers传递给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42403809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com