- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想试验一些 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/
我正在尝试在 Windows 上运行的小于 1GB 的 VM 上设置 YouTrack 和 TeamCity。使用率将非常低(用户和请求)。这是一个 POC 环境,如果它有效,我可能会将它推送到一个超
所以我在尝试使用 FORFILES 解决这个问题时遇到了麻烦。我正在尝试获取不超过 4 天的文件。所以基本上少于 4 天。然而,这似乎不太可能,因为/d -4 获取所有 4 天或更早的项目。 以下是我
如何从下面的 events 表中选择小于 15 分钟前创建的 events? CREATE TABLE events ( created_at timestamp NOT NULL DEFAU
Google Analytics Realtime提供 rt:minutesAgo ,可以过滤查询。 然而,它是一个维度而不是一个度量标准,<=不能在过滤器中使用。 假设我想在最后 n 分钟内获得一些
iOS 核心数据 - 严重的应用程序错误 - 尝试插入 nil 你好, 我的应用程序实际上运行稳定,但在极少数情况下它会崩溃并显示此错误消息... 2019-04-02 20:48:52.437172
我想制作一个 html div 以快速向右移动(例如不到 1 秒)并消失。然后1秒后再次直接出现在这个过程最开始div的位置。此过程将由单击按钮并重复 10 次触发。 我试图在 CSS 中使用过渡属性
我发现使用 TimeTrigger 是 Windows 10 (UWP) 上计划后台任务的方式。但是看起来我们需要给出的最小数字是 15 分钟。只是想知道,即使我们安排它在接下来的 1 分钟内运行,警
我必须在 1 秒内在屏幕上打印 2^20 行整数 printf 不够快,还有其他易于使用的快速输出替代方法吗? 每一行只包含 1 个整数。 我要求它用于竞争性编程问题,我必须将其源代码提交给法官。 最
我是一名优秀的程序员,十分优秀!