0

我用一些 nodejs 摆弄来自 wordpress 的博客文章和这些帖子的地理标记。我已将 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 合并到“数据”中并作为 1 个对象发送。我不知道该怎么做。我希望有人可以帮助我解决这个问题。

4

3 回答 3

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;
于 2012-09-01T15:10:45.213 回答
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));
  }
);
于 2012-09-01T15:15:53.093 回答
0

你也可以使用

    listener.sockets.emit('notification', data);
    jsonstring = JSON.parse(data)
    var ip = jsonstring.clientip
    var geo = geoip.lookup(ip);
    jsonstring['geo'] = geo;

在 jsonstring 中附加数据

当我们有动态键值时 [ ] 会更有帮助

于 2019-07-01T08:54:13.373 回答