2014-05-11 6 views
2

J'ai deux serveurs de noeud (A + B) et les deux utilisent Expressjs.Réponse express json de gestion

D'un j'utiliser demande (https://github.com/mikeal/request) pour faire une requête GET à l'autre:

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

et l'autre est:

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

Comme vous pouvez le voir, A fait une demande à B et B renvoie un résultat JSON. Cependant, je ne suis pas sûr comment traiter la réponse dans A. console.log(body) imprime le json complet mais comment puis-je accéder à l'URL envoyée par B?

J'ai essayé body.url mais pas de chance

+1

essayer JSON.parse sur le résultat, avant d'accéder comme un objet. – levi

+0

cela fait l'affaire - mettez-le comme une réponse si vous le souhaitez et je vais cocher – tommyd456

Répondre

2

Le résultat JSON est une chaîne. Vous devez d'abord analyser via JSON.parse, avant d'accéder comme un objet:

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