Comment corriger l'erreur ReferenceError: fetch is not defined dans Node.js ?

L'API Fetch est une nouveauté récente du langage JavaScript. Elle est utilisée pour effectuer des appels asynchrones vers une URL de votre serveur ou des API. Comme vous l'avez remarqué, elle a donc le même but que l'objet "XMLHttpRequest", mais elle est plus souple et plus puissante. Si vous essayez d'utiliser cet API avec votre programme fonctionnant sur Node.js, vous obtiendrez le message d'erreur suivant : "ReferenceError: fetch is not defined". La raison est simple : l'API Fetch n'a pas encore été implémentée dans Node.js. Si vous souhaitez l'utiliser, vous allez devoir installer un module pour le faire.

Le module node-fetch a été développé dans ce but : implémenter l'API Fetch dans Node.js. Pour l'utiliser, vous devez l'installer. La méthode la plus rapide est de se servir du gestionnaire de paquets intégré à Node, NPM. La commande "npm install" permet d'installer le module que l'on souhaite. Ajoutez l'option "--save" pour que la configuration soit sauvegardée dans le fichier "package.json". Quand un utilisateur voudra se servir plus tard de votre programme, alors "node-fetch" sera installé en même temps pour qu'il fonctionne correctement.

npm install node-fetch --save

Pour l'utiliser, il n'y a qu'une modification à faire. Dans le ou les fichiers au sein desquels vous allez utiliser le module, ajouter la ligne suivante en haut :

const fetch = require("node-fetch"),

Vous pouvez maintenant utiliser l'API Fetch directement dans vos fichiers. Son utilisation est la même avec le module qu'avec l'API JavaScript, vous pouvez donc directement copier-coller vos codes.

fetch('https://mondomaine.fr/api')
    .then(res => res.text())
    .then(text => console.log(text))

JavaScript