J'ai eu du mal à trouver comment ajouter des paramètres de chaîne de requête à mon URL. Je n'arrivais pas à le faire fonctionner jusqu'à ce que je me rende compte que je devais ajouter ?
à la fin de mon URL, sinon cela ne fonctionnera pas. C'est très important car cela vous épargnera des heures de débogage, croyez-moi : J'ai été là... j'ai fait ça .
Ci-dessous, vous trouverez un point de terminaison API simple qui appelle la fonction API météo ouverte et passe APPID
, lat
y lon
en tant que paramètres de requête et renvoie les données météorologiques sous la forme d'un fichier de type JSON
objet. J'espère que cela vous aidera.
//Load the request module
var request = require('request');
//Load the query String module
var querystring = require('querystring');
// Load OpenWeather Credentials
var OpenWeatherAppId = require('../config/third-party').openWeather;
router.post('/getCurrentWeather', function (req, res) {
var urlOpenWeatherCurrent = 'http://api.openweathermap.org/data/2.5/weather?'
var queryObject = {
APPID: OpenWeatherAppId.appId,
lat: req.body.lat,
lon: req.body.lon
}
console.log(queryObject)
request({
url:urlOpenWeatherCurrent,
qs: queryObject
}, function (error, response, body) {
if (error) {
console.log('error:', error); // Print the error if one occurred
} else if(response && body) {
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
res.json({'body': body}); // Print JSON response.
}
})
})
Ou si vous voulez utiliser le querystring
apportez les modifications suivantes
var queryObject = querystring.stringify({
APPID: OpenWeatherAppId.appId,
lat: req.body.lat,
lon: req.body.lon
});
request({
url:urlOpenWeatherCurrent + queryObject
}, function (error, response, body) {...})