2014-04-12 20 views
7

Ho installato espresso, e ha funzionato bene:Node.js: express non funziona?

... 
npm http 200 https://registry.npmjs.org/send/-/send-0.1.4.tgz 
npm http GET https://registry.npmjs.org/fresh/0.2.0 
npm http GET https://registry.npmjs.org/range-parser/0.0.4 
npm http 304 https://registry.npmjs.org/fresh/0.2.0 
npm http GET https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz 
npm http 304 https://registry.npmjs.org/range-parser/0.0.4 
npm http GET https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz 
npm http 200 https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz 
npm http 200 https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz 
[email protected] /usr/local/lib/node_modules/express 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] ([email protected]) 
├── [email protected] ([email protected]) 
├── [email protected] ([email protected], [email protected]) 
└── [email protected] ([email protected]) 

Ma poi faccio:

express testapp 
-bash: express: command not found 

E 'come se Express non è installato. Cosa succede con quello?

Solo per FYI, ho OSX se questo fa alcuna differenza?

+0

avete usato -g quando si è installato? – duncan

+0

Provato con -g e senza di esso. Con sudo e senza di esso. – R0b0tn1k

+0

Non funzionerà senza sudo però ... – R0b0tn1k

risposta

22

La nuova versione di Express (4.0) non dispone di una cartella bin. È necessario installare express-generator per ottenere la funzionalità di installazione.

Express 4.0 ha apportato modifiche significative. In particolare, lo spostamento di middleware e helper in moduli esterni.

Se è necessario avviare subito l'installazione, è necessario installare Express 3 e quindi imparare come far funzionare Express 4 quando si ha più tempo.

Innanzitutto, assicurati di avere ./node_modules/.bin nel tuo $ PATH. Poi ...

npm install "[email protected]" 
express 

O se avete tempo per imparare le differenze di Express 4 allora si può iniziare a lavorare con l'installazione di express-generator.

npm install express-generator 
express 

IMPORTANTE: assicuratevi di avere ./node_modules/.bin nella shell variabile $ PATH. I file eseguibili nei moduli nodo sono collegati nella directory ./node_modules/.bin. Avere quello nel tuo percorso rende facile eseguire quegli eseguibili senza digitare l'intero percorso e senza aggiungerli globalmente. Aggiungerli globalmente è una cattiva idea se si lavora con più progetti e si ha bisogno di mantenere la retrocompatibilità con i vecchi progetti.

SUGGERIMENTO: È possibile trovare il list of Express middlewares and helpers on Github.

+0

Noooo, nooo, non funziona ancora! Il comando eseguito bene, anche senza sudo, ma quando digito express testapp ho ancora il comando non trovato ... – R0b0tn1k

+0

Scusate per il dramma, mi sono tirato fuori i capelli ... – R0b0tn1k

+1

Assicuratevi di avere './node_modules/. bin' nel tuo $ PATH. – Daniel

5

Ecco come ho fatto funzionare la mia app Express. Ho eseguito

npm install -g express-generator 

Poi ho creato il mio app con

express app_name 

Dove app_name è ovviamente il nome della tua app.

Quindi ho installato le dipendenze.

cd app_name && npm install 

Quindi per eseguire l'applicazione che ho fatto

DEBUG=app_name ./bin/www 

I prompt sono stati generati dal sistema e si può copiare e incollare.Poi si visita

http://localhost:3000/ 

Qui è la mia applicazione funziona localmente

enter image description here

+0

Seguito questi stessi passaggi, ma l'app non viene eseguita. Dice che il 'require ('../app')' all'interno di './Bin/www' non è riuscito. Non capisco perché non funzioni. – IcyFlame

+0

Questa merda sta funzionando. – DarthVader