Reputation: 13421
just installed new ubuntu vm to test around with node installed things in this order:
node
mongodb-server
npm
express
mongoose
now, trying to create a new app i noticed express cannot be used in the shell.
express -v
returns
express: command not found
i installed npm like this
curl http://npmjs.org/install.sh | sudo sh
and i installed express this way
npm install express
any ideas?
Upvotes: 28
Views: 38868
Reputation: 11035
I had to do a combination of things:
From node.js modules path:
echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bash_profile && . ~/.bash_profile
This sets the file path in bash profile (can be viewed using nano .bash_profile
Slightly modified from Raynos (above) since I needed sudo
:
sudo npm install express -g
Slightly modified from Fazi (above) since I needed sudo
:
sudo npm install -g express-generator
TEST YOUR APPLICATION:
run `DEBUG=myapp:* npm start`
Ref: http://expressjs.com/en/starter/generator.html
Upvotes: 2
Reputation: 41
EDIT 2017-06-29: this answer is 6+ years old, but still gets votes/traffic. Instead (for any new users with problems) I'd trust both NODE_PATH
official doc and its corresponding bit about REPL usage before this answer.
Quite similar to this issue, node was not finding my global express install, so a require('express')
statement would fail.
What fixed this for me, when a global install wasn't being picked up by node was making sure NODE_PATH
env. variable was is set correctly.
On Ubuntu 11.04, with node version 0.5.0-pre, the paths me were:
NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node
So, to clarify you might want to export the above env. variable, or you can just test the above values out by doing:
NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node node ./you_app.js
Upvotes: 2
Reputation: 3989
Starting from express 4.00 you also need to install express generator with:
npm install -g express-generator
Only after this will you be able to run express as a command!
For confirmation see: ExpressJS.com - Migrating to Express 4
Upvotes: 90
Reputation: 4203
With the release of Express 4.0.0 it looks like you need to do sudo npm install -g express-generator.
Upvotes: 2
Reputation: 344
I had this problem and was installing node via Homebrew. The problem was being caused by Homebrew.
So I did:
brew uninstall node
and then installed node using the installer on the nodejs.org site.
Then I ran:
npm install -g express
And voila no problems.
Upvotes: 6
Reputation: 639
IF you are running windows:
export NODE_PATH="C:\Users\IMarek\AppData\Roaming\npm\node_modules"
Upvotes: 0
Reputation: 169391
npm install express -g
You need to install it globally.
Npm 1.0 installs modules locally by default. So the bash executable lives in /node_modules/bin/
. You can add that folder to PATH
or you can just install express
globally so that it's picked up by PATH
Upvotes: 40