node.js, Errore: impossibile trovare il modulo "express"


125

Sono nuovo su Node.js, provo a imparare Express per creare la mia prima applicazione web. Sono rimasto bloccato sul mio primo codice di esempio e ho bisogno di aiuto per farlo funzionare. Prima di pubblicare questa domanda, ho cercato su stack overflow, ho trovato alcune domande simili ma non sono riuscito a risolverlo.

Errore: impossibile trovare il modulo "express"

Sto usando mac os 10.8.2 . Ho installato Node.js utilizzando nvm.

node.js: 0.8.20 path to node: /Users/feelexit/nvm/v0.8.20/bin/node path to express: / Users / feelexit / nvm / node_modules / express

ecco il mio codice di esempio: questo file si trova in:

/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js

var express = require('express');

var app = express();

app.get('/', function(req, res){

    res.send('welcome to express');
});

app.listen(3000);

quando provo a eseguire questo comando node index.js

Ricevo il seguente messaggio di errore, per favore aiutami a risolverlo.

Grazie.

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js:1:81)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
feelexits-Mac:node_modules feelexit$ 

Aggiorna per rispondere alla domanda di Chovy:

feelexits-Mac:~ feelexit$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.2.0
npm ERR! command "/Users/feelexit/nvm/v0.8.20/bin/node" "/Users/feelexit/nvm/v0.8.20/bin/npm" "install"
npm ERR! cwd /Users/feelexit
npm ERR! node -v v0.8.20
npm ERR! npm -v 1.2.11
npm ERR! path /Users/feelexit/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/feelexit/npm-debug.log
npm ERR! not ok code 0


30
Hai digitatonpm install
chovy

1
Sei sicuro che la libreria express sia nella tua cartella "node_modules"? Potresti anche provare a spostare il tuo file index.js su di una directory in "/ Users / feelexit / WebstormProjects / learnnode /" e lasciare la cartella node_modules da sola.
Predefinito

1
Pubblica il tuo package.jsonfile. Ciò aiuterà a eseguire il debug del problema.
Akhil Raina

@chovy, utilizzo npm install express per installare express. cosa fa solo "npm install"?
qinking126

Risposte:


157

Dice

 Cannot find module 'express'

Hai installato Express? In caso contrario, eseguilo.

 npm install express

Ed esegui di nuovo il programma.


1
Questo non risolve il problema nel mio caso. npm install expressmostra questo errore npm ERR! Error: UNKNOWN, symlink '../express/bin/express'. Sembra essere un problema più profondo.
Sliq

Usa sudo se non hai corretto i permessi di directory per npm. In ogni caso, "sudo npm install" è un'opzione migliore.
Gaurav Gupta

Si verificano spesso errori di collegamento simbolico, se si installano elementi a livello globale e, sì, il collegamento simbolico si interrompe. Prova npm linka ricreare il rispettivo collegamento ...
Frank Nocke

@Sliq ho provato con la tua soluzione ma non riesco a risolvere il mio problema, puoi aiutarmi?
VjyV

Non trascurare "Ed esegui di nuovo il tuo programma". Nel mio caso ho dovuto riavviare il processo nel mio file process manager. Non si è riavviato da solo.
Tadej

42

Dopo aver espresso nel tuo terminale, fallo

 npm install

Per installare tutte le dipendenze.

Quindi puoi eseguire l'app del nodo per eseguire il server.


7
Dovresti sottolineare che questo richiede un file di elenco dei pacchetti, ad esempio .json .. E questo non è sempre il caso.
Pogrindis

@VjyV nella stessa directory in cui si trova il file del nodo .js. Ma dovrebbe avere il file package.json nella directory in modo che possa installare le dipendenze richieste.
Saurabh Rana

34

Controlla se hai installato il expressmodulo. In caso contrario, usa questo comando:

npm install express

e se la tua node_modulesdirectory è in un altro posto, imposta la NODE_PATHvariabile di ambiente:

set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%

12
Questa è la risposta giusta, per tutti coloro che pubblicano queste CTRL+C / CTRL+V npm installrisposte: pensi davvero che qualcuno proverebbe a eseguire qualcosa senza controllare se è installato prima? Scherzi a parte ...
Claudio Holanda

3
Basta aggiungere un piccolo dettaglio: è necessario eseguire il comando install express nella directory dell'applicazione e non nella cartella di installazione di Node.js o nella cartella npm in AppData. Perché questo è l'errore che ho fatto, perché pensavo fosse una sorta di componente aggiuntivo SDK.
Alex

29

 npm install --save express   
Questo ha funzionato per me, esegui di nuovo l'installazione di express.js.


11

L'installazione di npm dalla directory dell'app risolverà il problema poiché installerà tutto il necessario


5

Scavando un vecchio thread qui MA ho avuto lo stesso errore e l'ho risolto navigando nella directory in cui risiede NodeApp e in esecuzione npm install -d


Non sono sicuro del perché o del come sia importante, ma questo lo installa nelle tue dipendenze dev: docs.npmjs.com/cli/install
Guy Lowe

1
@GuyLowe -dè il debug per npm, -Dè dipendenze dev.
John Pavek

4

A meno che tu non imposti Node_PATH , l'unica altra opzione è installare express nella directory dell'app, come npm install express --save. Express potrebbe essere già installato ma nodenon è possibile trovarlo per qualche motivo


Questo ha funzionato per me, è meglio eseguire il comando di installazione nella stessa directory dei file .js. Inoltre è possibile eseguire il comando "npm init" per creare il file package.json per evitare ulteriori problemi.
emarshah

3

Il tuo modulo express si trova in una directory diversa dal tuo progetto. Questo è probabilmente il problema poiché lo stai provando require()localmente. Prova a spostare il tuo modulo express da / Users / feelexit / nvm / node_modules / express a / Users / feelexit / WebstormProjects / learnnode / node_modules / express . Queste informazioni possono fornire maggiori dettagli sulle strutture dei file node_module.


2

se il tuo file principale si trova in /Users/feelexit/WebstormProjects/learnnode/node_modules/index.jsallora express deve essere posizionato in /Users/feelexit/WebstormProjects/learnnode/node_modules/node_modulespoiché il nodo cerca sempre i moduli in ./node_modules(e la sua cartella interna) quando il percorso non inizia con ./o /( maggiori informazioni qui )

Penso che ti sei perso il tuo file principale nella cartella del modulo


2

per questo scenario eseguire il comando npm install express utilizzando il prompt di cmd per la rispettiva cartella in cui si desidera eseguire il programma. Esempio Voglio eseguire il programma del modulo express server.js in F: \ nodeSample. Quindi esegui "npm install express" in quella particolare cartella, quindi esegui server.js


1

Esegui il npm install express body-parser cookie-parser multer --savecomando nella stessa directory con il file nodejs del codice sorgente per risolvere questo problema. P / s: controlla la tua directory dopo aver eseguito il comando per saperne di più!


1

In rari casi, la cache npm potrebbe essere danneggiata. Per me, ciò che ha funzionato è stato:

npm cache clean --force

Generalmente, il gestore di pacchetti rileverà il danneggiamento e il refetch da solo, quindi questo non è solitamente necessario. Tuttavia, nel mio caso Windows 10 si è arrestato in modo anomalo alcune volte e sospetto che ciò possa essere stato durante un'operazione di recupero. Spero che aiuti qualcuno!

Ulteriori informazioni: https://docs.npmjs.com/cli/cache


1

Mi sono imbattuto in un problema simile e alla fine si è trattato di alcune vecchie dipendenze che stavano rovinando il mio server Heroku.

Mentre nella cartella del mio progetto ho eseguito:

npm uninstall
npm install

spero possa essere d'aiuto


0

npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'

Ciò accade a causa di autorizzazioni mancanti o file scollegati mentre npm funzionava.

Significa che l'esecuzione npm come questo utente non ha diritti sufficienti per leggere / scrivere da un file, in questo caso package.json.

prova ad aggiungere sudoprima dell'intero comando: dovrebbe risolversi.

$ sudo npm install -g express
$ Password:*******

La password sarebbe la tua password di amministratore del tuo Mac.

-gflag installerà questo modulo (express) nel contesto globale del nodo, il che significa che il nodo riconoscerà / dovrebbe riconoscere il expressmodulo da qualsiasi file js senza dover fornire un percorso completo al modulo in uso.

Spero che questo ti aiuti!!


0

Ho avuto lo stesso problema. Il mio problema era che dovevo passare alla directory del progetto Node.js sulla riga di comando prima di installare Express.

cd /Users/feelexit/WebstormProjects/learnnode/node_modules/

0

Immagino che questo sia un lavoro del corso di sviluppo Web di Colt Steele ... Stavo cercando la stessa risposta sul motivo per cui ho finito anche con quell'errore .. Colt non lo dice ma prendi la cartella node_module e sposta nella nuova cartella in cui stai lavorando ... ecco cosa ha funzionato per me.


0
D:\learn\Node.js\node app.js
module.js:549
    throw err;
    ^

Error: Cannot find module 'body-parser'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

A volte la versione non corrisponde a package.json Risolto il problema controllando il package.json quindi utilizzare i seguenti comandi: npm install body-parser@1.13.2 risolto per me.


0

Hai provato

npm install

Se stai cercando specificamente solo express

npm install --save express
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.