J'utilise express.js pour créer un serveur proxy pour gérer les appels d'un site Web, manipuler la demande, puis faire une demande pour un fournisseur tiers. J'ai besoin d'attendre la réponse de la tierce partie pour répondre à mon site Web, mais je ne trouve pas de moyen d'attendre la réponse.Attendre la réponse HTTP pour résoudre la fonction
Mon fichier contrôleur est
const model = require('../models/ticketmaster')
const startHour = 'T00:00:00Z'
const endHour = 'T23:59:59Z'
function getData(req, res) {
model({ startDateTime: req.query.startDateTime + startHour, endDateTime: req.query.endDateTime + endHour},res)
res.status(200).send()
}
module.exports = getData;
et le fichier modèle est
const request = require('request');
const config = require ('../config.js');
module.exports = (req, res) => {
request.get(`${config.ticketmasterApiUrl}&startDateTime=${req.startDateTime}&endDateTime=${req.endDateTime}`)
.on('finished', (res) => {
console.log(res.status)
})
.pipe(res)
}
Je suis confus. N'avez-vous pas juste besoin de supprimer la ligne 'res.status (200) .send()'? – skirtle
En faisant cela, je reçois l'erreur 'rejet non géré StatusCodeError: 400' –
Cela ressemble à un problème avec des promesses, mais je ne vois aucune promesse dans votre code et 'request' n'utilise pas de promesses. – skirtle