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?
Parece que es un problema de jade o express. Intente sumergirse en el código ... –
Edité mi respuesta sobre lo que encontré después de profundizar en el código. – JChristian
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