我正在 NODE.JS 中开展项目,当用户登录时,他的区域天气会自动显示在他的信息中心上。 根据我的理解,当客户来时:
1)使用 request-ip 跟踪他的ip。
2)然后根据这个可以确定他的区域的ip尺寸。对于这个m使用 satelize 。
3)然后在经度和纬度的基础上,可以借助 forcast.io 预测他所在地区的天气。
问题是向该中间件发送请求,得到环回ip。(localhost:3000)。虽然我想得到任何随机客户端的ip.so,我可以检查我的api是否正常工作。 这是我的代码:
router.get('/',function(req,res){
var clientIp = requestIp.getClientIp(req); //inside middleware handle
satelize.satelize({ip:clientIp}, function(err, geoData) { // if data is JSON, we may wrap it in js object
var obj = JSON.parse(geoData);
forecast.get([obj.latitude, obj.longitude], function(err, weather) {
if(err) return console.dir(err);
console.log(weather);
});
});
});
答案 0 :(得分:0)
如果我理解正确,您希望在本地计算机上进行开发时使用随机IP地址。为此,您必须根据您的环境设置clientIp变量。您可以使用NODE_ENV,请参阅https://stackoverflow.com/a/16979503/2494649以获得更好的解释。
如果您想使用随机客户端的IP地址,您必须自己收集这些地址并将其设置为clientIp。例如,您可以设置随机客户端ip的数组并随机使用它们。
var randomIps = ['1.2.3.4', '5.6.7.8', '123.123.123.123'];
var clientIp;
if(process.env.NODE_ENV === 'development') {
// Select random IP address
clientIp = randomIps[Math.floor(Math.random()*randomIps.length)];
} else {
clientIp = requestIp.getClientIp(req); //inside middleware handle
}
您可以使用您的应用将您的客户端IP地址保存到数据存储区(匿名),并使用这些地址为clientIp变量提供随机IP地址。