2012-03-17 19 views
5

Estoy jugando con Node.js por primera vez y decidí crear una aplicación simple usando Express. He seguido las instrucciones de github en un directorio vacío, así:Obteniendo un error al ejecutar el proyecto Express Express

npm install -g express 
express 
npm install -d 
node app.js 

Al navegar a localhost:3000 consigo el error siguiente:

Express 
500 Error: Cannot find module './lib/jade' 
at Function._resolveFilename (module.js:332:11) 
at Function._load (module.js:279:25) 
at Module.require (module.js:354:17) 
at require (module.js:370:17) 
at Object. (C:\dev\gravity_kata\node_modules\jade\index.js:4:5) 
at Module._compile (module.js:441:26) 
at Object..js (module.js:459:10) 
at Module.load (module.js:348:31) 
at Function._load (module.js:308:12) 
at Module.require (module.js:354:17) 

Al mirar bajo node_modules\jade\lib veo todos los archivos de la biblioteca de Jade, pero no hay una carpeta jade. Así que creé una carpeta bajo lib llamada jade y moví los archivos de la biblioteca allí y ahora mi aplicación predeterminada funciona.

Ahora, dado que casi no tengo experiencia con Node.js y Express, estoy bastante seguro de haber hecho algo mal. ¿Alguien tiene alguna idea de lo que está pasando aquí?

Editar:

me sumergió en el código de Jade. En el archivo index.js de Jade, se requiere lib\jade y, al buscar en la carpeta lib, no había ningún archivo jade.js. Bueno, ese es el problema, pero ¿por qué falta el archivo jade.js? Al extraer el Jade source de npm, hay un archivo jade.js en el directorio lib. Copié la carpeta lib de la fuente descargada en el módulo de Jade para mi proyecto y funciona bien ahora.

Por alguna razón, npm no está bajando el archivo jade.js. La versión en el archivo packages.json coincide con la fuente que saqué, 0.21.0. ¿Alguien tiene una idea de por qué sucedió esto?

+1

Parece que es un problema de jade o express. Intente sumergirse en el código ... –

+0

Edité mi respuesta sobre lo que encontré después de profundizar en el código. – JChristian

+0

La descarga desde la fuente y la extracción funcionó para mí. Gracias por señalar el archivo perdido. Debe ser un error con NPM/Jade. – foobar

Respuesta

2

Para mí, en Windows, la versión de jade 0.22.0 solucionó el problema.

+0

Debe haber sido un error en jade, porque la versión 0.22.0 me arregló el problema también. – JChristian

2

probablemente tiene que ver con el hecho de que instaló express globalmente (-g), pero el npm install -d se realizó localmente. tratar de instalarlos tanto a nivel mundial, o como yo preferiría, tanto a nivel local:

sudo npm uninstall express -g 
npm install express 
npm install jade (or npm install -d) 
+1

La instalación de express globalmente da acceso al ejecutable. Eliminé express en todo el mundo, pero express y jade ya estaban instalados localmente. Todavía estoy recibiendo el mismo error. – JChristian

11

cd a la carpeta del proyecto expresa y ejecutar "NPM instalar", esto instalará todas las dependencias

+0

Cuando dices carpeta de proyecto express, ¿te refieres al directorio '/ node_modules/express'? – JChristian

+0

¿está ejecutando Linux o Windows? digamos que se crea un proyecto en el escritorio usando expresan TestProject continuación cd TestProject NPM instalación – gastonfartek

+0

im lo siento no es bueno con los comentarios, voy a volver a escribir ese comentario – gastonfartek

0

realmente asegurarse de que todos el módulo require s es correcto. Javascript es muy divertido cuando te dice lo que está realmente mal. Intente eliminar la línea de la plantilla de jade y vea qué sucede entonces.

0

Acabo de encontrar este problema con el error del módulo de jade. Parece que la carpeta de jade no se creó automáticamente (algún tipo de error). Ahora resolví esto con reinstalar jade. Después de eso, la carpeta de jade se creó automáticamente. use npm uninstall gulp-jade y luego instale gulp-jade otra vez