2014-05-11 123 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;