运行基本Express项目时出现错误
我第一次搞乱了Node.js,决定用express来创build一个简单的应用程序。 我按照如下的空目录按照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
文件夹。 所以我创build了一个名为jade的lib下的文件夹,并将库文件移动到那里,现在我的默认应用程序工作。
现在,鉴于我几乎没有Node.js和Express的经验,我很确定我做错了什么。 有人知道这里发生了什么吗?
编辑:
我钻入Jade代码。 在Jade的index.js文件下,它需要lib\jade
并在lib文件夹下查找,没有jade.js
文件。 那么,这是问题,但为什么jade.js文件丢失? 当从npm下拉Jade 源文件时,lib目录下有一个jade.js文件。 我将lib文件夹从下载的源文件复制到我的项目的Jade模块,现在工作正常。
所以出于某种原因,npm并没有拉下jade.js文件。 packages.json
文件中的版本匹配我拉下来的源代码0.21.0
。 有人有一个想法,为什么发生这种情况?
对我来说,在windows上,玉石版本0.22.0修正了这个问题。
cd到你的express项目文件夹并运行“npm install”,这将会安装所有的依赖关系
它可能与事实有关,即你在全球安装express( -g
),但npm install -d
是在本地完成的。 尝试在全球范围内安装它们,或者按照我的意愿在本地安装:
sudo npm uninstall express -g npm install express npm install jade (or npm install -d)
确保所有的模块都是正确的。 Javascript很有趣,告诉你什么是错的。 尝试删除玉模板行,看看会发生什么。
我刚刚发现这个问题与玉石模块的错误。 看起来玉文件夹并不是自动创build的(某种错误)。 现在我解决这个重新安装玉。 之后,玉文件夹被自动创build。 用npm卸载gulp-jade ,然后再安装gulp-jade