const axios = require('axios'); const url = ''; const urlMovies = 'http://localhost:3001/' const axiosServer = axios.create({ baseURL: url, }); class EntertainMeController { static readEntertainMe(req, res) { let movies; let tvseries; axiosServer({ url: urlMovies, method: 'get', }) .then(({ data }) => { movies = data; } res.status(200).json({ movies }) } }i write this code inside controllers, router.get('/', EnternainMeController.readEntertainMe) movies is undifined, any help please
3 Réponses :
Essayez-le comme ceci:
static async readEntertainMe(req, res) { let movies; let tvseries; let { data } = await axiosServer({ url: urlMovies, method: 'get', }) movies = data; res.status(200).json({ movies })
Essayez d'ajouter res.Status à l'intérieur du bloc. Ensuite, le bloc sera exécuté de manière asynchrone à partir du flux de code principal.
Également si cela aide, vous pouvez supprimer la variable des films. P>
axiosServer({ url: urlMovies, method: 'get', }) .then(({ data }) => { movies = data; res.status(200).json({ movies }) }
One Dower Réponse: Utilisez Var Films em> au lieu de Laissez les films em>. P>
a expliqué: il s'agit d'un problème de cadrage lexical pouvant être traité avec des fermetures. Vous avez besoin d'accès à la fonction de fonction extérieure. Une fermeture est la combinaison d'une fonction groupée ensemble (fermée) avec des références à son état environnant (l'environnement lexical). En d'autres termes, une fermeture vous donne accès à une fonction de fonction extérieure à partir d'une fonction interne. En JavaScript, les fermetures sont créées chaque fois qu'une fonction est créée, au moment de la création de fonction.
https://developer.mozilla.org/en-us/docs/ Web / javascript / fermetures p>