Node.js 找不到module express,如何安装它以使其全局可用?
我想尝试一下node.js的东西,昨天我按照网络上的某人的指示安装了它,它启动并运行了,我在屏幕上看到了标准的Hello World网页 我现在转到另一个示例,但为了不使主目录混乱,我在其中创建了一个目录(~/node),并在其中创建了所需的文件。瞧,到了运行该服务的时候,我没有高兴地说Node.js 找不到module express,如何安装它以使其全局可用?,node.js,express,pi,Node.js,Express,Pi,我想尝试一下node.js的东西,昨天我按照网络上的某人的指示安装了它,它启动并运行了,我在屏幕上看到了标准的Hello World网页 我现在转到另一个示例,但为了不使主目录混乱,我在其中创建了一个目录(~/node),并在其中创建了所需的文件。瞧,到了运行该服务的时候,我没有高兴地说express模块找不到 说明告诉我使用-g标志安装express,但这没有帮助。我甚至连运气都没有,又跑了一次 现在我发现: 看来我必须在当前目录下再次安装它。我已经做到了,而且效果很好。它是否必须安装在我希
express
模块找不到
说明告诉我使用-g
标志安装express,但这没有帮助。我甚至连运气都没有,又跑了一次
现在我发现:
看来我必须在当前目录下再次安装它。我已经做到了,而且效果很好。它是否必须安装在我希望运行服务的每个目录下?这似乎是不必要的重复
编辑:
我不太了解js,我想我会去挖掘并找到它
app.use(express['static'](uu dirname))代码>
我意识到这可能是我问题的原因。进一步的研究发现:如果我在一个更高级别的目录中安装一次,这将“解决”我的问题。我不打算费心卸载这个模块,但在我的下一个项目中,我将尝试一下,看看它是如何运行的
我不知道为什么原作者在安装express时建议使用-g
标志,因为它似乎对我不起作用 看看
所有npm包都包含一个文件,通常位于项目根目录中,名为package.json——该文件包含与项目相关的各种元数据。该文件用于向npm提供信息,使其能够识别项目并处理项目的依赖关系
一个package.json
示例:
{
"name": "CRUD",
"description": "A simple CRUD",
"author": "Only for learn",
"dependencies": {
"express": "*",
},
}
因此,要安装依赖项
请转到package.json
所在的级别,然后运行npm install
此安装将安装项目所需的所有依赖项
编辑
一个package.json
Express能够在全局安装时生成一个简单的应用程序结构。查看此内容并使用express(1)滚动至以生成应用程序部分。这是一个让您轻松入门的好方法。我发现,在设置node.js项目和依赖项时,使用Grunt[http://gruntjs.com/]有很多优点。尽管有很多不同的方法来设置节点和表达项目,但是对于使用Douglas Crockford方法和“顺其自然”还有很多要说的。在本例中,Grunt是一种粒度,因为它正在成为设置节点项目的事实标准,并且对于最常见的node.js项目类型存在现有模板。你可以在这里找到Grunt Express[https://github.com/blai/grunt-express]
在这种情况下,Grunt将为您提供与其他项目一致的项目结构,为node package manager设置依赖项文件,并为您自动生成express项目。包保存在节点\模块目录中。如果您熟悉maven,您可能会认识到“约定优先于配置的方法” NPM是一个非常好的工具,允许您在本地和全局安装node.js模块
本地模块安装
如果你想为你的项目使用一个模块,你必须在本地安装它。
这就是为什么npm在项目目录中创建名为node_modules的子目录。
如果您将同一模块用于两个不同的项目,npm将下载该模块并安装两次。这很正常,它可以帮助您管理同一依赖项的不同版本
管理依赖项并为特定项目安装模块的最佳方法是使用依赖项填充并使用安装
npm install
在项目目录中
要访问代码中的模块,请使用require()函数。
例如,使用expressjs:
var express = require('express');
var app = express();
...
全局模块安装
npm允许您在全球范围内安装模块。但是请记住,与expressjs和express(1)一样,全局安装模块只会在终端中提供更多命令
要全局安装expressjs,请在终端中运行此命令
npm install -g express
如果要在特定项目中使用全局安装的模块,还必须在本地安装(在项目目录中,不带-g)
我希望这能清楚地回答您的问题。安装-g标志显示了什么?有错误吗?