2011-09-13 12 views
28

Estoy usando readDirSync para obtener los archivos de un Diretory. Por favor encuentre el código y el error de la siguiente manera.Recuperando archivos del Nodo de directorio 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]); 
} 

Aparece el error para la línea número 2. ENOENT, No existe ningún archivo o directorio './application/models/' en Object.readdirSync (fs.js: 376: 18)

Tengo aplicaciones/modelos en el mismo directorio. Ya he comprobado '/ application/models /' y 'application/models /' pero ha fallado. Puedo ver lo mismo que se ejecuta en el servidor.

Por favor, ayuda

Gracias

+0

Ha intentado 'process.chdir (__ nombredir)' sí – Raynos

Respuesta

31

Si está utilizando la ruta relativa al llamar readdirSync, asegúrese de que está en relación con process.cwd(). Sin embargo, "requiere" debe ser relativo a la secuencia de comandos actual.

Por ejemplo, dada la siguiente estructura

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

puede que tenga que escribir importer.js como:

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

¿Ha probado el siguiente?

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

Intenté lo mismo. también me dio el error ... No existe ese archivo o directorio '/ home/vikas/project-admin/includes/application/models /' – Sharmaji

+0

¿Podría ser porque los permisos? –

Cuestiones relacionadas