2013-05-09 6 views
4

Я ищу способ репликации метода jQuery getJSON, но на стороне сервера. Сервер, который я использую, является сервером node.js с выраженной структурой, написанной в coffeescript.Как получить JSON с удаленного сервера на экспресс-сервере?

код у меня есть на стороне клиента:

# 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 

Но после этого, я понятия не имею, как получить fulldata в json с сервера freegeoip.net.

Помогите кому угодно?

+0

http://nodejs.org/docs/ v0.5.2/api/http.html # http.request –

+0

https://github.com/mikeal/request – ZimSystem

ответ

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 
) 

Тело содержит данные мне нужно.

Я уверен, что собственное решение node.js David Fregoli также работает, но пакет запросов работает отлично и легко.

Спасибо им обоим.

+0

Если вы только после получения запросов, у node.js есть ярлык, похожий на модуль запроса. http://nodejs.org/docs/v0.5.2/api/http.html#http.get – Pickels

0

Я незнаком с CoffeeScript, однако, одна из библиотек узла по умолчанию называется 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); 
    }); 
}); 
Смежные вопросы