Desarrollé un programa node.js usando el framework express en mi computadora, donde funciona bien sin quejas.
Sin embargo, cuando ejecuto el programa en mi dispositivo SUSE Studio, donde está destinado a vivir, recibo un error en cualquier interacción de archivo.
Error: ENOENT, stat './path/to/file'
He comprobado que los permisos de archivo son correctos, que son. Mi computadora y mi dispositivo están ejecutando diferentes versiones de nodo, si esto es importante.
¿Alguna idea?
__dirname + 'path/to/file';
Respuestas:
Las rutas especificadas con a
.
son relativas al directorio de trabajo actual, no relativo al archivo de script. Por lo tanto, el archivo se puede encontrar si ejecuta,node app.js
pero no si lo hacenode folder/app.js
. La única excepción a esto esrequire('./file')
y eso solo es posible porquerequire
existe por módulo y, por lo tanto, sabe de qué módulo se está llamando.Para hacer una ruta relativa al script, debe usar la
__dirname
variable.o potencialmente
fuente
Aquí el código para usar tu app.js
la entrada especifica el nombre del archivo
fuente