运行基本Express项目时出错

时间:2012-03-17 22:26:59

标签: javascript node.js express pug

我第一次搞乱Node.js并决定使用express创建一个简单的应用程序。我按照github中的说明操作了一个空目录,如下所示:

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

导航到localhost:3000时出现以下错误:

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)

node_modules\jade\lib下查看时,我看到了所有Jade的库文件,但没有jade文件夹。所以我在lib下创建了一个名为jade的文件夹,并将库文件移到那里,现在我的默认应用程序正常运行。

现在,看到我几乎没有使用Node.js和Express的经验我很确定我做错了什么。有没有人知道这里发生了什么?

修改

我潜入了玉代码。在Jade的index.js文件下,它需要lib\jade并在lib文件夹下查找,没有jade.js文件。嗯,这就是问题,但为什么jade.js文件丢失了?从npm中提取Jade source时,lib目录下有一个jade.js文件。我将lib文件夹从下载的源代码复制到我项目的Jade模块中,现在工作正常。

所以出于某种原因,npm并没有拉下jade.js文件。 packages.json文件中的版本与我下拉的源0.21.0相匹配。有人知道为什么会这样吗?

5 个答案:

答案 0 :(得分:11)

cd到你的快递项目文件夹并运行“npm install”,这将安装所有依赖项

答案 1 :(得分:2)

这可能与您在全球范围内安装快递(-g)这一事实有关,但npm install -d是在本地完成的。尝试在全球范围内安装它们,或者我希望在本地安装它们:

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

答案 2 :(得分:2)

对我来说,在Windows上,玉版0.22.0修复了这个问题。

答案 3 :(得分:0)

确保所有模块require都正确无误。 Javascript告诉你实际上是错的很有趣。尝试删除玉石模板行,然后看看会发生什么。

答案 4 :(得分:0)

我刚发现这个问题与jade模块的错误。看起来jade文件夹不是自动创建的(某种bug)。现在我通过重新安装玉来解决这个问题。之后,自动创建了玉文件夹。 使用 npm uninstall gulp-jade 然后再次安装gulp-jade