2014-05-11 125 views
2

我有两个节点服务器(A + B),都使用Expressjs。快递 - 处理JSON响应

从一个我用的请求(https://github.com/mikeal/request)做一个GET请求对方:

//A server 
app.get('/:id', function(req, res) { 
    request('http://localhost:8080/api/' + req.params.id, function (error, response, body) { 
    console.log(body); 
    }) 
}); 

,另一个是:

//B server 
app.get('/api/:id', function(req, res) { 
    res.json(200, {url: "http://www.google.co.uk"}); 
}); 

正如你所看到的,正在请求到B和B返回一个json结果。但是,我不知道如何处理A中的响应。console.log(body)打印完整的json,但是如何访问从B发送的url?

我已经试过body.url但没有运气

+1

尝试JSON.parse的结果,访问它就像一个对象之前。 – levi

+0

这是做的伎俩 - 把它作为一个答案,如果你喜欢,我会打勾 – tommyd456

回答

2

JSON结果是一个字符串。你必须通过JSON.parse首先对其进行解析,访问它像一个对象之前:

var url = JSON.parse(body).url;