Logan Serman
Logan Serman

Reputation: 29880

Issues with installing Express.JS in Windows 7

I have installed Node.js through the installer on their webpage and added it's path to my environment variable so I can use node and npm through the command line. If I make an express app, it works, but I have to create it manually.

This is fine I guess, but I was wondering why I can't use the express command? I am getting

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

I noticed that express installs in C:\Username\node_modules instead of where I thought it would go, in C:\Program Files\Nodejs\node_modules. Is this a problem?

Upvotes: 13

Views: 14442

Answers (5)

Zimon
Zimon

Reputation: 43

Just want to add the following: instead of first installing it globally using:

npm install express -g

And then moving it, like the accepted answer says (which is just silly), just simply install it within node js:

npm install express

-g is for global, you want it locally so NodeJS can access it.

Upvotes: 0

Lucas Cárpio
Lucas Cárpio

Reputation: 801

In later versions of express comand line was migrated to a separate module: express-generetor

use

npm install -g express-generator@3

and could use the express command

Upvotes: 31

Michael Zaporozhets
Michael Zaporozhets

Reputation: 24566

Although this is not necessarily a problem, it's annoying and and error is an error even if you can navigate around it.

Although you can reference other node modules even if they are not in the node directory, as far as I understand node requires the modules to be in the node_modules folder within the Nodejs directory in order to automatically find them. (I had a similar issue on osx and this method solved it.)

Try moving the contents of

C:\Username\node_modules into C:\Program Files\Nodejs\node_modules\

Alternatively,

You can also install modules globally with:

npm install express -g

which allows you to access them without having to worry about your node directory, although these are then more difficult to manage and "you should try to avoid if you can".

From the Node Blog:

Just like how global variables are kind of gross, but also necessary in some cases, global packages are important, but best avoided if not needed.

In general, the rule of thumb is:

If you’re installing something that you want to use in your program, using require('whatever'), then install it locally, at the root of your project. If you’re installing something that you want to use in your shell, on the command line or something, install it globally, so that its binaries end up in your PATH environment variable.

Resources

Upvotes: 5

Zain Rizvi
Zain Rizvi

Reputation: 24656

Installing node.js adds the C:\Users\\AppData\Roaming\npm\ directory to your PATH variable. If the global install is not working correctly then something must have accidentally removed it. Running a repair-install of node.js should fix this issue

Upvotes: 1

Alexander Beletsky
Alexander Beletsky

Reputation: 19841

You should install the express globally.

npm install express -g

Upvotes: 2

Related Questions