我在做一些节点,摆弄着来自wordpress的博客帖子和theese帖子的地理标记。我已将geolite集成到nodejs中,并从wordpress获取客户端ID。这是我的nodejs代码现在的样子。
native.on('data',
function(data)
{
//console.log(data)
listener.sockets.emit('notification', data);
jsonstring = JSON.parse(data)
var ip = jsonstring.clientip
var geo = geoip.lookup(ip);
console.log(ip);
console.log(geo);
listener.sockets.emit('geodata', geo);
}
);
正如您所见,lat / long从json编码数据单独发送到套接字。
我想将lat / long合并为“data”并发送为1个对象。我无法弄清楚如何做到这一点。我希望有人可以帮助我。
答案 0 :(得分:1)
一个或两个expando / ad-hoc属性就足够了:
listener.sockets.emit('notification', data);
jsonstring = JSON.parse(data)
var ip = jsonstring.clientip
var geo = geoip.lookup(ip);
jsonstring.geo = geo;
// or
jsonstring.lat = geo.lat;
jsonstring.lng = geo.lng;
答案 1 :(得分:0)
在发出之前,将geo
信息添加为已解析数据对象的另一个属性:
native.on('data',
function(data)
{
var obj = JSON.parse(data)
obj.geo = geoip.lookup(obj.ip);
listener.sockets.emit('notification', JSON.stringify(obj));
}
);
答案 2 :(得分:0)
您也可以使用
owner_jited
将数据附加到jsonstring
[]当我们有动态键值时会更有帮助