【问题标题】:Getting an error when running the basic Express project运行基本 Express 项目时出错
【发布时间】:2012-04-03 00:04:10
【问题描述】:

我第一次接触 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 下创建了一个名为 jam 的文件夹并将库文件移到那里,现在我的默认应用程序可以工作了。

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

编辑:

我深入研究了 Jade 代码。在 Jade 的 index.js 文件下,它需要 lib\jade 并在 lib 文件夹下查看,没有 jade.js 文件。好吧,这就是问题所在,但是为什么缺少jade.js 文件呢?从npm拉取Jadesource时,lib目录下有一个jade.js文件。我将下载源中的 lib 文件夹复制到我的项目的 Jade 模块中,现在它可以正常工作了。

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

【问题讨论】:

  • 好像是玉器或者快递的问题。尝试深入研究代码...
  • 我在深入研究代码后编辑了我的回复。
  • 从源代码下载和提取对我有用。感谢您指出丢失的文件。一定是 NPM/Jade 的错误。

标签: javascript node.js express pug


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    对我来说,在 windows 上,jade 版本 0.22.0 解决了这个问题。

    【讨论】:

    • 肯定是jade的bug,因为0.22.0版本也为我解决了这个问题。
    【解决方案3】:

    确实要确保所有模块requires 都是正确的。 Javascript 很有趣地告诉你什么是真正的错误。尝试删除翡翠模板行,看看会发生什么。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 你说的express项目文件夹是指/node_modules/express目录吗?
      • 你运行的是linux还是windows?假设您使用 express testproject 在桌面上创建一个项目,然后 cd testproject npm install
      • 对不起,我对 cme​​ts 不好,我会重新写那条评论
      • 首先通过输入 express testproject .... 之后输入 cd testproject .... 然后输入 npm install 来创建一个项目
      • 我在 Windows 上运行。好的,您的意思是我的项目目录,而不是已安装的 express 模块的目录。我确实使用-d 选项运行了npm install。我只是有点困惑,因为在我最初的问题中我指定我这样做了。所以,不用说,运行npm install 并没有修复错误。
      【解决方案5】:

      这可能与您全局安装 express (-g) 的事实有关,但 npm install -d 是在本地完成的。尝试在全球范围内安装它们,或者按照我的意愿,在本地安装它们:

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

      【讨论】:

      • 全局安装 express 可以访问可执行文件。我全局删除了express,但是本地已经安装了express和jade。我仍然遇到同样的错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2019-01-02
      • 2020-03-18
      • 2013-08-18
      相关资源
      最近更新 更多