0

私は、ワードプレスからのブログ投稿とこれらの投稿のジオタグ付けをいくつかのnodejsでいじっています。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);
  }
);

ご覧のとおり、緯度/経度は、json でエンコードされたデータとは別にソケットに送信されます。

緯度/経度を「データ」にマージし、1つのオブジェクトとして送信したい。これを行う方法がわかりません。誰かがこれで私を助けてくれることを願っています。

4

3 に答える 3

1

1 つまたは 2 つの 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 に答える