web-dev-qa-db-fra.com

readFileSync n'est pas une fonction

Je suis relativement nouveau sur Node.js et je cherche des solutions, mais je ne trouve pas de solution. J'ai vérifié le fichier javascript requis et il ne semble pas avoir de méthode pour "readFileSync". Peut-être que je n'ai pas de fichier requis approprié? J'ai eu du mal à trouver ce fichier, j'en ai parlé partout, mais la plupart des gens n'ont pas indiqué où l'obtenir.

J'ai installé Node.js et ai le fichier require.js. Mon code actuel est comme ceci:

fs = require(['require'], function (foo) {
//foo is now loaded.
});
console.log("\n *STARTING* \n");
// Get content from file
var contents = fs.readFileSync("sliderImages", 'utf8');

Au début, j’avais un peu besoin d’être obligé de travailler, mais il semble que le fichier JavaScript requis soit chargé. J'ai suivi les guides et je ne sais pas pourquoi je reçois cette erreur:

Uncaught TypeError: fs.readFileSync n'est pas une fonction

J'ai essayé beaucoup de corrections et je n'arrive pas à comprendre cela.

21
L1ghtk3ira

Node.js n'utilise pas Require.js . Require.js a été créé pour permettre le chargement de module asynchrone côté client (dans votre navigateur).

Node.js utilise des modules de style CommonJS . Votre code utilisant CommonJS ressemblerait à ceci:

var fs = require('fs');
console.log("\n *STARTING* \n");
var contents = fs.readFileSync("sliderImages", "utf8");

Si nous supposons que vous enregistrez cela dans un fichier nommé main.js vous entreriez alors cette commande dans votre console (assurez-vous de vous trouver dans le même répertoire que le fichier):

node main.js

Ce code ne fonctionnera pas dans le navigateur. Node.js s'exécute sur le serveur. Si vous souhaitez charger un fichier JSON du côté du navigateur, vous devez le charger à l'aide d'AJAX. Il existe de nombreuses ressources disponible pour vous montrer comment faire cela. Sachez que vous devez exécuter votre page à partir d'un serveur ou activer un indicateur spécial pour charger les fichiers à partir du système de fichiers.

14
Mike Cluck