13

我已经通过他们网页上的安装程序安装了 Node.js,并将它的路径添加到我的环境变量中,以便我可以node通过npm命令行使用。如果我制作一个快速应用程序,它可以工作,但我必须手动创建它。

我猜这很好,但我想知道为什么我不能使用该express命令?我正进入(状态

`express` is not recognized as an internal or external command, operable program or batch file.

我注意到 express 安装在 C:\Username\node_modules 中,而不是我认为它会去的地方,在 C:\Program Files\Nodejs\node_modules 中。这是一个问题吗?

4

5 回答 5

31

在更高版本的 express 命令行中被迁移到一个单独的模块:express-generetor

采用

npm install -g express-generator@3

并且可以使用 express 命令

于 2014-04-11T17:39:36.107 回答
5

尽管这不一定是问题,但它很烦人,即使您可以绕过它,错误也是一个错误。

尽管您可以引用其他节点模块,即使它们不在节点目录中,但据我了解,节点要求模块位于node_modules目录内的文件夹Nodejs中才能自动找到它们。(我在 osx 上遇到了类似的问题,这种方法解决了它。)

尝试移动的内容

C:\Username\node_modules进入C:\Program Files\Nodejs\node_modules\

或者

您还可以使用以下方法全局安装模块:

npm install express -g

这允许您访问它们而不必担心您的节点目录,尽管这些更难以管理并且“如果可以的话,您应该尽量避免”。

来自节点博客:

就像全局变量有点粗俗,但在某些情况下也是必要的一样,全局包很重要,但如果不需要,最好避免使用。

一般来说,经验法则是:

如果您正在安装要在程序中使用的东西,请使用 require('whatever'),然后将其安装在本地项目的根目录下。如果您要在 shell、命令行或其他地方安装要在 shell 中使用的东西,请全局安装它,以便它的二进制文件最终出现在您的 PATH 环境变量中。

资源

于 2012-07-26T06:44:46.760 回答
2

您应该全局安装 express。

npm install express -g
于 2012-07-26T07:16:28.427 回答
1

安装 node.js 会将 C:\Users\\AppData\Roaming\npm\ 目录添加到您的 PATH 变量中。如果全局安装无法正常工作,那么一定是某些东西意外删除了它。运行 node.js 的修复安装应该可以解决此问题

于 2014-03-30T06:01:19.230 回答
0

只想添加以下内容:而不是首先使用全局安装它:

npm install express -g

然后移动它,就像接受的答案所说(这很愚蠢),只需将它安装在节点 js 中:

npm install express

-g 用于全局,您希望它在本地,以便 NodeJS 可以访问它。

于 2014-11-30T15:25:58.500 回答