Mad*_*vad 3 pi node.js express
我想尝试一些node.js的东西,我昨天按照网上的某些指示安装了它,它启动并运行了,我在屏幕上显示了标准的Hello World网页.
我现在转到另一个例子,但为了不弄乱我的主目录,我创建了一个目录(〜/ node)并在那里创建了我需要的文件.低,看,当运行服务的时候,我没有得到快乐,说明express无法找到模块.
说明告诉我使用-g旗帜安装快递,但这没有帮助.我甚至没有运气就跑了.
现在我发现了这个: 找不到模块`express` | socket.io [node.js]
看来我必须在当前目录下再次安装它.我已经做到了,它的确有效.它是否必须安装在我想要运行服务的每个目录下?这似乎是一种不必要的重复.
编辑:
不太了解js我以为我会去挖掘并找到
app.use(express['static'](__dirname ));
并意识到这可能是我的问题的原因.进一步的研究发现了这个:http://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders,如果我在更高级别的目录中安装一次,那就应该"解决"我的问题.我不打算卸载模块,但对于我的下一个项目,我会尝试一下,看看它是怎么回事.
我不知道为什么原作者-g在安装快递时提出了标志,因为它似乎对我不起作用.
小智 5
NPM是一个非常好的工具,允许您在本地和全局安装node.js模块.
如果要为项目使用模块,则必须在本地安装.这就是为什么npm在项目目录中创建一个名为node_modules的子目录.如果您对两个不同的项目使用相同的模块,npm将下载模块并安装两次.这是完全正常的,它可以帮助您管理相同依赖项的不同版本.
管理依赖项和为特定项目安装模块的最佳方法是使用您的依赖项填充 package.json并使用它们进行安装
npm install
Run Code Online (Sandbox Code Playgroud)
在项目目录中.
要在代码中访问模块,请使用require()函数.例如,使用expressjs:
var express = require('express');
var app = express();
...
Run Code Online (Sandbox Code Playgroud)
npm允许您全局安装模块.但请记住,全局安装模块只能在终端中提供更多命令,如expressjs和express(1).
要在全局安装expressjs,请在终端中运行
npm install -g express
Run Code Online (Sandbox Code Playgroud)
如果要在特定项目中使用全局安装的模块,还必须在本地安装它(在项目目录中,不使用-g).
我希望这清楚地回答你的问题.
| 归档时间: |
|
| 查看次数: |
3178 次 |
| 最近记录: |