4

我正在寻找一种复制jQuery方法getJSON但服务器端的方法。我正在使用的服务器是一个 node.js 服务器,它带有用 coffeescript 编写的 express 框架。

我有客户端的代码是:

# To get the client IP
$.getJSON("http://jsonip.com?callback=?", (data) ->
      # To get more information about that IP
  $.getJSON("http://freegeoip.net/json/" + data.ip, (fulldata) ->
    console.log fulldata))

fulldata 变量为我提供有关客户端 IP 的信息。

我必须避免使用 JavaScript 客户端,所以我尝试做同样的服务器端,我得到客户端 IP:

(req, res) ->
  # To get the client IP
  req.ip

但在那之后,我不知道如何从 freegeoip.net 服务器获取 json 中的完整数据。

帮助,有人吗?

4

2 回答 2

1

我使用了 Skelly解决方案。

所以我做了 :

request = require 'request'

(...)

(req, res) ->
  url = 'http://freegeoip.net/json/' + req.ip
  request.get(url, (error, response, body) ->
    if !error 
      console.log body
  )

正文包含我需要的数据。

我确信David Fregoli的本机 node.js 解决方案也可以工作,但 Request 包可以完美而轻松地工作。

感谢他们俩。

于 2013-05-09T12:40:46.517 回答
0

我不熟悉coffeescript,但是,Node 的默认库之一称为http(最常用于设置服务器)可以发出http 请求

var request = http.request({host: 'jsonip.com', port: 80, path: '?callback=?' , method: 'GET'}, function(res){
    res.on('data', function (chunk) {
        console.log('BODY: ' + chunk);
    });
});
于 2013-05-09T12:43:01.587 回答