50 votes

Récupération de fichiers à partir de Directory Node Js

J'utilise readDirSync pour obtenir les fichiers d'un répertoire. Veuillez trouver le code et l'erreur comme suit.

 var fs = require('fs');
var files = fs.readdirSync('./application/models/');
for(var i in files) {
  var definition = require('../application/models/'+files[i]).Model;
  console.log('Model Loaded: ' + files[i]);
}

J'obtiens une erreur pour la ligne numéro 2. ENOENT, pas de tel fichier ou répertoire './application/models/' à Object.readdirSync (fs.js:376:18)

J'ai des applications/modèles sur le même répertoire. J'ai déjà vérifié '/application/models/' et 'application/models/' mais a échoué. Je peux voir la même chose s'exécuter sur le serveur.

S'il vous plaît aider

Merci

56voto

ivan loire Points 721

Si vous utilisez un chemin relatif lors de l'appel de readdirSync , assurez-vous qu'il est relatif à process.cwd() . Cependant, "require" doit être relatif au script actuel.

Par exemple, étant donné la structure suivante

 server.js (node process)
/lib/importer.js (the current script)
/lib/application/models/

vous devrez peut-être écrire importer.js comme :

 var fs = require('fs');
var files = fs.readdirSync('./lib/application/models/');
for (var i in files) {
  var definition = require('./application/models/' + files[i]).Model;
  console.log('Model Loaded: ' + files[i]);
}

16voto

Van Coding Points 5816

Avez-vous essayé ce qui suit ?

 var files = fs.readdirSync(__dirname+'/application/models/');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X