2011-09-13 9 views
28

Sto usando readDirSync per ottenere i file da un Direttorio. Si prega di trovare il codice e l'errore come segue.Recupero di file dal nodo della directory Js

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]); 
} 

Ho ricevuto l'errore per il numero di riga 2. ENOENT, Nessun file o directory "./application/models/" su Object.readdirSync (fs.js: 376: 18)

Ho applicazione/modelli sulla stessa dir. Ho già controllato '/ application/models /' e 'application/models /' ma non è riuscito. Posso vedere la stessa cosa in esecuzione sul server.

Si prega di aiutare

Grazie

+0

Hai provato 'process.chdir (__ dirname)' – Raynos

risposta

31

Se si utilizza percorso relativo quando si chiama readdirSync, assicurarsi che sia relativo al process.cwd(). Tuttavia, "require" deve essere relativo allo script corrente.

Ad esempio, data la struttura seguente

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

potrebbe essere necessario scrivere importer.js come:

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]); 
} 
5

avete provato la seguente?

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

sì Ho provato la stessa cosa. mi ha anche dato l'errore .. Nessun file o directory '/ home/vikas/project-admin/include/application/models /' – Sharmaji

+0

Potrebbe essere perché le autorizzazioni? –