Vous vous demandez comment je peux faire une demande GET à un JSONAPI utilisant Node.js. De préférence, je souhaite utiliser Express, mais ce n’est pas nécessaire et la sortie doit se trouver sur une page Jade. Je suis encore complètement nouveau pour Node.js et les langages backend dans leur ensemble.
Réponses:
12 pour la réponse № 1var request = require("request");
request("<API Call>", function (error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body)
}
})
Cela fera une requête HTTP à l'API et en cas de succès, analysera la réponse en JSON.
En ce qui concerne la réponse sur une page Jade, souhaitez-vous effectuer un appel API (sur votre propre serveur), puis utiliser AngularJS / jQuery / un autre cadre pour renseigner les informations?
Si vous souhaitez ajouter ceci à votre propre itinéraire, envisagez de l'intégrer comme ceci:
var express = require("express");
var cors = require("cors");
var request = require("request");
var app = express();
app.use(express.bodyParser());
app.use(cors());
app.get("<Your Route>", function(req, res){
request("<API Call>", function (error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body)
// do more stuff
res.send(info);
}
})
});
app.listen(3000);
console.log("The server is now running on port 3000.");
6 pour la réponse № 2
J'aime utiliser le package de demande:
npm install --save request
Et le code:
var request = require("request");
request({url: "http://yourapi.com/", json: true}, function(err, res, json) {
if (err) {
throw err;
}
console.log(json);
});
2 pour la réponse № 3
En outre, les mêmes personnes qui vous ont apporté le request
paquet, ont sorti avec une version basée sur la promesse soutenue par bluebird appelée, sans surprise, request-promise
:
Certaines personnes préfèrent également le super agent, ce qui vous permet de chaîner des commandes:
Voici un exemple tiré de leur documentation:
request
.post("http://localhost:3000/api/pet")
.send({ name: "Manny", species: "cat" })
.set("X-API-Key", "foobar")
.set("Accept", "application/json")
.end(function(err, res){
// Calling the end function will send the request
});