node.js,错误:找不到模块'express'

Posted

技术标签:

【中文标题】node.js,错误:找不到模块\'express\'【英文标题】:node.js, Error: Cannot find module 'express'node.js,错误:找不到模块'express' 【发布时间】:2013-02-03 15:21:50 【问题描述】:

我是 Node.js 的新手,尝试学习 express 来构建我的第一个 Web 应用程序。我被困在我的第一个示例代码上,需要一些帮助才能让它运行。在我发布这个问题之前,我确实搜索了堆栈溢出,发现了一些类似的问题但仍然无法解决。

Error: Cannot find module 'express'

我正在使用 ma​​c os 10.8.2。我使用 nvm 安装了 Node.js。

node.js: 0.8.20 path to node:    /Users/feelexit/nvm/v0.8.20/bin/node
path to express: /Users/feelexit/nvm/node_modules/express

这是我的示例代码:此文件位于:

/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js

var express = require('express');
var app = express();
app.get('/', function(req, res)
    res.send('welcome to express');
);
app.listen(3000);

当我尝试运行此命令node index.js 时,我收到以下错误消息,请帮助我修复它。

谢谢。

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> (/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js:1:81)
    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)
feelexits-Mac:node_modules feelexit$ 

更新以回答 chovy 的问题:

feelexits-Mac:~ feelexit$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.2.0
npm ERR! command "/Users/feelexit/nvm/v0.8.20/bin/node" "/Users/feelexit/nvm/v0.8.20/bin/npm" "install"
npm ERR! cwd /Users/feelexit
npm ERR! node -v v0.8.20
npm ERR! npm -v 1.2.11
npm ERR! path /Users/feelexit/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/feelexit/npm-debug.log
npm ERR! not ok code 0

【问题讨论】:

这可能会有所帮助***.com/questions/9133784/… 你输入了吗npm install 您确定 express 库在您的“node_modules”文件夹中吗?您可能还想尝试将 index.js 文件上移一个目录到“/Users/feelexit/WebstormProjects/learnnode/”,并保留 node_modules 文件夹。 请发布您的package.json 文件。这将有助于调试问题。 @chovy,我使用 npm install express 来安装 express。只有“npm install”有什么作用? 【参考方案1】:

在我的情况下,我试图运行与您相同的方式,但使用的是 nodemon。 错误是一样的,但问题是因为在我的 package.json 我添加了 app.js 而不仅仅是 app

“脚本”: “开发”:“nodemon 应用程序”

【讨论】:

【参考方案2】:

安装节点模块时有时会出错 试试这个:

    删除节点模块 npm 安装

【讨论】:

【参考方案3】:

在你的终端做快递后,再做

npm install

安装所有依赖项。

然后你就可以做node app来运行服务端了。

【讨论】:

您应该指出,这需要一个包列表文件,即 .json.. 而且并非总是如此。 @VjyV 在您拥有 .js 节点文件的同一目录中。但是它应该在目录中有 package.json 文件,以便它可以安装所需的依赖项。【参考方案4】:
npm install --save express

这对我有用。只需再次运行 express.js 安装即可。

【讨论】:

【参考方案5】:

它说

Cannot find module 'express'

你有安装快递吗?如果没有,请运行它。

npm install express

然后再次运行您的程序。

【讨论】:

这并不能解决我的问题。 npm install express 显示此错误 npm ERR! Error: UNKNOWN, symlink '../express/bin/express'。似乎是一个更深层次的问题。 如果您还没有修复 npm 的目录权限,请使用 sudo。无论如何,“sudo npm install”是一个更好的选择。 符号链接错误经常发生,如果你在全球范围内安装了东西,是的,符号链接坏了。尝试npm link 重新创建相应的链接... @Sliq 我尝试了您的解决方案,但我无法解决我的问题,您能帮帮我吗? 不要忽视“然后再次运行你的程序。”在我的情况下,我不得不在我的process manager 中重新启动该过程。它没有自行重启。【参考方案6】:

你试过了吗

npm install

如果你特意找快递就行了

npm install --save express

【讨论】:

【参考方案7】:

我遇到了类似的问题,最后是一些旧的依赖项搞砸了我的 Heroku 服务器。

在我的项目文件夹中运行时:

npm uninstall
npm install

希望对你有帮助

【讨论】:

【参考方案8】:
D:\learn\Node.js\node app.js
module.js:549
    throw err;
    ^

Error: Cannot find module 'body-parser'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

有时版本与 package.json 不匹配 通过检查 package.json 解决了问题,然后使用以下命令: npm install body-parser@1.13.2 它为我解决了。

【讨论】:

【参考方案9】:

除非您设置 Node_PATH,否则唯一的其他选择是在 app 目录中安装 express,例如 npm install express --save。 Express 可能已经安装,但node 因某种原因找不到它

【讨论】:

这个对我有用,最好在 .js 文件所在的目录中执行安装命令。您也可以运行命令“npm init”来创建 package.json 文件以避免进一步的问题。【参考方案10】:

在极少数情况下,npm 缓存可能会损坏。对我来说,有效的是:

npm cache clean --force

通常,包管理器会自行检测损坏并重新获取,因此通常不需要这样做。但是,在我的情况下,Windows 10 崩溃了几次,我怀疑这可能是在获取操作期间。希望它可以帮助某人!

更多信息:https://docs.npmjs.com/cli/cache

【讨论】:

谢谢!在我的情况下,安装 BigSur 后节点会损坏。缓存清理工作!【参考方案11】:

对于这种情况,使用您的 cmd 提示符运行 npm install express 命令,找到您要运行该程序的相应文件夹。 示例 我想在 F:\nodeSample 中运行 express 模块程序 server.js。因此,在该特定文件夹中运行“npm install express”,然后运行 ​​server.js

【讨论】:

【参考方案12】:

在与源代码 nodejs 文件相同的目录中运行 npm install express body-parser cookie-parser multer --save 命令以解决此问题。 P/s:运行命令后检查你的目录以了解更多!

【讨论】:

【参考方案13】:

我猜这是 Colt Steele 的 Web 开发课程的课程作业...我一直在寻找相同的答案来解释为什么我最终也会出现该错误。. Colt 没有这么说,但您使用 node_module文件夹并移至您正在使用的新文件夹...这对我有用。

【讨论】:

【参考方案14】:

检查你是否安装了express 模块。如果没有,请使用以下命令:

npm install express

如果您的node_modules 目录位于其他位置,请设置NODE_PATH 环境变量:

set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%

【讨论】:

是正确的答案,对于发布这些CTRL+C / CTRL+V npm install 的每个人来说,你真的认为有人会在不检查是否先安装的情况下尝试运行某些东西吗?说真的…… 只是添加一个小细节:您需要在您的应用程序目录中运行 install express 命令,而 not 在您的 Node.js 安装文件夹或 npm-folder 中应用程序数据。因为那是我犯的错误,因为我认为这是某种 SDK 插件。【参考方案15】:

我遇到了同样的问题。我的问题是,在安装 express 之前,我必须在命令行上切换到 Node.js 项目目录。

cd /Users/feelexit/WebstormProjects/learnnode/node_modules/

【讨论】:

【参考方案16】:

npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'

这是由于在 npm 工作时缺少权限或未链接文件。

意思是,以该用户的身份执行npm 没有足够的权限来读取/写入文件,在本例中为 package.json。

尝试在整个命令之前添加sudo - 它应该可以解决。

$ sudo npm install -g express$ Password:*******

密码将是您的 mac 管理员密码。

-g 标志将在节点的全局上下文中安装此模块(表达) - 意味着节点将/应该从任何 js 文件中识别 express 模块,而无需提供正在使用的模块的完整路径。

希望这会有所帮助!

【讨论】:

【参考方案17】:

从您的应用目录中安装 npm 将解决问题,因为它将安装所需的一切

【讨论】:

【参考方案18】:

在这里挖掘一个旧线程但我遇到了同样的错误,我通过导航到我的 NodeApp 所在的目录并运行 npm install -d 解决了这个问题

【讨论】:

不确定为什么或如何重要,但这会将其安装在您的开发依赖项中:docs.npmjs.com/cli/install @GuyLowe -d 是 npm 的调试,-D 是开发依赖项。【参考方案19】:

如果您的主文件位于/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js,则需要定位 express 在/Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules,因为节点总是在./node_modules(及其内部文件夹)中查找模块 当路径不以.// (more info here) 开头时

我认为你错过了将主文件放在模块文件夹中

【讨论】:

【参考方案20】:

您的 express 模块与您的项目位于不同的目录中。这可能是问题所在,因为您尝试在本地 require() 它。尝试将您的 express 模块从 /Users/feelexit/nvm/node_modules/express 移动到 /Users/feelexit/WebstormProjects/learnnode/node_modules/express。 This info 可以为您提供有关 node_module 文件结构的更多详细信息。

【讨论】:

以上是关于node.js,错误:找不到模块'express'的主要内容,如果未能解决你的问题,请参考以下文章

Node.js/Express - 找不到页面时呈现错误

错误:找不到模块 html

Node.js AWS 部署错误:找不到模块

node.js 错误:找不到模块“lodash.assign”

如何使用 Node.js 解决“找不到模块”错误?

找不到Node.js /socket.io/socket.io.js express 4.0