async function cap2 () {
const r = await fetch ('https://restcountries.com/v3.1/name/france')
if (r.ok === true){
return r.json();
}
throw new Error ('impossible de contacter le serveur ')
document.querySelector('#result').src=r.headers
}
fichier fonction :
const fetch = require('node-fetch');
async function getcap() {
await fetch(`https://restcountries.com/v3.1/name/spain`)
.then(res => res.json())
.then(data => console.log(data));
}
module.exports = { getcap }
Ce que je veux
Depuis un client , je cherche a envoyer une requete dont le chemin fait appel a une fonction contenant un fetch vers une API , puis j'essaye de récupérer la réponse pour l'afficher dans le client
Ce que j'obtiens
(node:14735) UnhandledPromiseRejectionWarning: Unhandled promise rejection.
Hello :)
Ton appel est isolé dans une fonction, mais il faut le retourner à la fin, sinon il reste coincé, le return du then exporte uniquemment le json de la callback "then", mais pas de la fonction getcap
async function getcap() {
const response = await fetch(`https://restcountries.com/v3.1/name/spain`)
.then(res => res.json()) // Retires le console.log, sinonta function va retourner la réponse de console.log au lieux de retourner le json
console.log(response) // Tu peux ajouter le console.log ici vu que le résultat du fetch est enregistré dans la variable "response"
return response
}
Sinon le const fetch = require('node-fetch');
si tu es sur nodejs tu ne devrais pas avoir besoin d'ajouter cette lib, sauf si tu es dans une vieille version de nodejs qui n'a pas encore intégré fetch (il a été intégré dans la version 17.5, et est stable dans la version 18)