Node JS , express , affichage html

Par Lalaina3009, il y a 2 ans


Les bases HTML/CSS
Javascript NodeJS
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.

2 réponses

Lalaina3009, il y a 2 ans

Pour information , je suis novice , j'aimerai de l'aide car je suis dépassé

popotte, il y a 2 ans

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)