27

刚刚安装了新的 ubuntu vm 以按以下顺序测试节点安装的东西:

node
mongodb-server
npm
express
mongoose

现在,尝试创建一个新的应用程序,我注意到 express 不能在 shell 中使用。 express -v 返回快递:找不到命令

我像这样安装了npm

curl http://npmjs.org/install.sh | sudo sh

我以这种方式安装了快递

npm install express

有任何想法吗?

4

7 回答 7

90

从 express 4.00 开始,您还需要安装 express 生成器:

npm install -g express-generator

只有在此之后,您才能将 express 作为命令运行!

如需确认,请参阅:ExpressJS.com - 迁移到 Express 4

于 2014-04-24T10:50:58.123 回答
40

npm install express -g

您需要全局安装它。

Npm 1.0 默认在本地安装模块。所以 bash 可执行文件存在于/node_modules/bin/. 您可以将该文件夹添加到,PATH或者您可以express全局安装,以便它被拾取PATH

于 2011-05-23T21:32:20.617 回答
6

我遇到了这个问题,正在通过 Homebrew 安装节点。问题是由 Homebrew 引起的。

所以我做了:

brew uninstall node

然后使用nodejs.org站点上的安装程序安装节点。

然后我跑了:

npm install -g express

瞧,没有问题。

于 2013-07-10T16:52:55.173 回答
2

编辑2017-06-29:这个答案已有 6 年以上的历史,但仍然获得投票/流量。相反(对于任何有问题的新用户)我会在这个答案之前相信NODE_PATH官方文档及其关于 REPL 使用的相应位。

与此问题非常相似,节点找不到我的全局快速安装,因此require('express')语句将失败。

当节点没有选择全局安装时,为我解决了这个问题是确保NODE_PATH env. 变量被正确设置。在 Ubuntu 11.04 上,节点版本为 0.5.0-pre,我的路径是:

NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node

因此,为了澄清您可能想要导出上述环境。变量,或者您可以通过执行以下操作来测试上述值:

NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node node ./you_app.js
于 2011-06-09T02:18:09.750 回答
2

随着 Express 4.0.0 的发布,您似乎需要做sudo npm install -g express-generator.

于 2014-11-23T07:39:12.423 回答
2

我不得不做一些事情:

  1. node.js 模块路径

    echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bash_profile && . ~/.bash_profile
    

    这会在 bash 配置文件中设置文件路径(可以使用nano .bash_profile

  2. 因为我需要,所以从 Raynos(上图)略微修改sudo

    sudo npm install express -g
    
  3. 因为我需要,所以从 Fazi(上图)略微修改sudo

    sudo npm install -g express-generator
    

测试您的应用程序:

run `DEBUG=myapp:* npm start`

参考:http ://expressjs.com/en/starter/generator.html

于 2015-12-18T18:33:32.953 回答
0

如果您正在运行 Windows:

export NODE_PATH="C:\Users\IMarek\AppData\Roaming\npm\node_modules"
于 2012-09-18T12:38:17.787 回答