【问题标题】:Getting error while using Express with Node.js将 Express 与 Node.js 一起使用时出错
【发布时间】:2026-01-20 19:00:02
【问题描述】:

我用 npm express 写了一个小程序。当我运行程序时,出现如下错误。(我是 node.js 的新手)

module.js:340
    throw err;
          ^
Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (C:\Users\node\node_modules\app.js:1:77)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)

【问题讨论】:

  • 似乎您还没有在本地 node_modules 文件夹中安装 express(也没有在全局文件夹中安装?)...您可以检查它是否在您所在的目录中安装了 npm list运行脚本。
  • 我安装了 npm express C:\Users\node\node_modules>npm express -v 1.2.11 我可以使用上面的命令获取 express 的版本.. 所以它被安装了......跨度>
  • 安装位置不对。原因见下面我的回答。如果它回答了你的问题,如果你能 a) 支持它,b) 将它标记为答案,那就太好了。谢谢:-)

标签: node.js express


【解决方案1】:

在您的应用中,您显然是 require express 模块,可能是这样的:

var express = require('express');

要使这条线正常工作,您需要将 Express 安装到应用程序的本地上下文中。为此运行

$ npm install express

在您的应用程序文件夹中。这将(如果尚不存在)创建一个文件夹node_modules,您的所有依赖项都在其中。

此外,我建议您将 Express 放入 package.jsondependencies 块内,例如:

"dependencies": {
  "express": "3.1.0"
}

当然,您可以将版本号调整为您使用的任何版本。为所有依赖项完成此操作后,您只需运行即可立即安装它们

$ npm install

这应该可以解决它。

PS:对于这种情况,无论您是否全局安装 Express 都无关紧要。全局安装仅适用于在系统范围内使用 express 引导程序。 require 函数始终只在本地应用程序上下文中搜索。

【讨论】:

  • +1 推荐 package.json,如果他决定部署到像 heroku 或 nodejitsu 这样的 paas,它将使 OP 的生活更轻松。
  • 谢谢,但不仅如此,还有从源代码管理中签出项目的同事(你肯定不想签入node_modules 文件夹)。