node.js - 找不到 module express,如何安装它以使其在全局范围内可用?

标签 node.js express pi

我想试验一些 node.js 的东西,昨天我按照网上某人的说明安装了它,它启动并运行了,我在屏幕上显示了标准的 Hello World 网页。

我现在转到另一个示例,但为了不弄乱我的主目录,我从它创建了一个目录 (~/node) 并在其中创建了我需要的文件。瞧,当运行该服务时,我很不高兴地指出找不到 express 模块。

说明告诉我使用 -g 标志安装 express,但这没有帮助。我什至再次运行它,但没有任何运气。

现在我发现了这个: Cannot find module `express` | socket.io [node.js]

看来我必须在当前目录下重新安装它。我已经做到了并且有效。是否必须将它安装在我希望从中运行服务的每个目录下?这似乎是不必要的重复。

编辑:

不太了解 js 我以为我会去挖掘并发现

app.use(express['static'](__dirname ));

并意识到这可能是我的问题的原因。进一步研究发现:http://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders如果我在更高级别的目录中安装一次,那应该“解决”我的问题。我不会为卸载该模块而烦恼,但对于我的下一个项目,我会尝试一下,看看效果如何。

我不知道为什么原作者在安装 express 时建议使用 -g 标志,因为它似乎对我不起作用。

最佳答案

NPM 是一个非常好的工具,允许您在本地和全局安装 node.js 模块。

本地模块安装

如果你想为你的项目使用一个模块,你必须在本地安装它。 这就是为什么 npm 在您的项目目录中创建一个名为 node_modules 的子目录。 如果你为两个不同的项目使用相同的模块,npm 将下载该模块并安装它两次。这很正常,它可以帮助您管理同一依赖项的不同版本。

为特定项目管理依赖项和安装模块的最佳方法是填写 package.json使用您的依赖项并使用

安装它们
npm install

在您的项目目录中。

要在您的代码中访问您的模块,请使用require() 函数。 例如,使用 expressjs :

var express = require('express');
var app = express();
...

全局模块安装

npm 还允许您在全局范围内安装模块。但请记住,全局安装模块只会在您的终端中提供更多命令,就像 expressjs 和 express(1) 一样。

为了全局安装 expressjs,在你的终端运行它

npm install -g express

如果你想在特定项目中使用全局安装的模块,你还必须在本地安装它(在你的项目目录中,没有 -g)。

我希望这能清楚地回答您的问题。

关于node.js - 找不到 module express,如何安装它以使其在全局范围内可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17779304/

相关文章:

java - 在 Java 中使用随机生成的数据对 pi 进行蒙特卡洛计算

node.js - 如何在 Expressjs 中进行 Web 服务调用?

node.js - 如何从钩子(Hook)访问 Mongoose 模型

javascript - Passport JS 身份验证中间件问题

javascript - 使用 map 或 reduce 等数组运算符获取从 0 到 2π Angular 的 n 个点?

algorithm - 如何在 PI 的小数位内找到一个特定的序列?

javascript - Facebook Messenger 回传

node.js - NPM 如何更新/升级传递依赖?

flash - 如何在 node.js 中使用 net 模块向所有客户端广播

express - Botkit 与 Express