Appels d'API externes avec Express, Node.JS et Require Module
J'ai itinéraire suivi:
var express = require('express');
var router = express.Router();
var request = require('request');
router.get('/', function(req, res, next) {
request({
uri: 'http://www.giantbomb.com/api/search',
qs: {
api_key: '123456',
query: 'World of Warcraft: Legion'
},
function(error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body)
}
}
});
});
module.exports = router;
Je suis en train de faire un appel API pour le Géant de la Bombe API de ramener toutes les données, il est à propos de World of Warcraft.
Le problème est, la route seulement des charges; il ne fait rien ou qu'il n'a pas le temps, c'est juste le chargement continu.
Je ne sais pas ce que je fais mal, mais cela dit... je ne sais pas ce qui est bon. Je suis en train d'apprendre que je vais le long.
Toute aide serait super.
Grâce
source d'informationauteur Dave Melia
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de prendre les données que vous obtenez à partir de
request()
et renvoyer la réponse au serveur web d'origine de la demande. C'était juste en continu de chargement parce que vous n'avez jamais envoyé de n'importe quelle sorte de réponse à la demande initiale, ainsi que le navigateur était simplement assis là, attendant une réponse de revenir et finalement, il aura le temps.Depuis
request()
prend en charge les flux, vous pouvez renvoyer les données que la réponse très simplement à l'aide de.pipe()
comme ceci:Ce sera
.pipe()
larequest()
résultat dans lares
objet et elle deviendra la réponse à l'origine de la requête http.Liées réponse ici: Comment proxy demande de retour comme réponse
Par chaque route, dans l'Express, il est nécessaire d'envoyer une réponse (partielle ou complète) ou d'un appel
next
ou faire les deux. Votre gestionnaire d'itinéraire ne fait rien. Essayezet afficher les données de ce gestionnaire d'itinéraire répond avec.
Bien que le problème de base était déjà déclaré, le code est incorrect (C'est pourquoi la deuxième solution n'a pas fonctionné). Le rappel qui est censé être un second paramètre est en fait une partie de l'objet (premier paramètre).