Ich bin neu bei Node.js und versuche Express zu lernen, um meine erste Webanwendung zu erstellen. Ich blieb bei meinem ersten Beispielcode stecken und brauche Hilfe, um ihn zum Laufen zu bringen. Bevor ich diese Frage poste, habe ich nach Stapelüberlauf gesucht, einige ähnliche Fragen gefunden, konnte sie aber immer noch nicht beheben.
Fehler: Modul 'Express' kann nicht gefunden werden
Ich benutze Mac OS 10.8.2 . Ich habe Node.js mit installiert nvm
.
node.js: 0.8.20 Pfad zum Knoten: /Users/feelexit/nvm/v0.8.20/bin/node Pfad zum Ausdrücken: / Users / feelexit / nvm / node_modules / express
Hier ist mein Beispielcode: Diese Datei befindet sich unter:
/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);
wenn ich versuche, diesen Befehl auszuführen node index.js
Ich erhalte die folgende Fehlermeldung. Bitte helfen Sie mir, das Problem zu beheben.
Danke dir.
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$
Update zur Beantwortung von Chovys Frage:
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
npm install
package.json
Datei. Dies hilft beim Debuggen des Problems.Antworten:
Es sagt
Haben Sie Express installiert? Wenn nicht, führen Sie dies aus.
Und führen Sie Ihr Programm erneut aus.
quelle
npm install express
zeigt diesen Fehlernpm ERR! Error: UNKNOWN, symlink '../express/bin/express'
. Scheint ein tieferes Problem zu sein.npm link
, die entsprechende Verknüpfung neu zu erstellen ...process manager
. Es wurde nicht von selbst neu gestartet.Nachdem Sie in Ihrem Terminal ausgedrückt haben, tun Sie dies
So installieren Sie alle Abhängigkeiten.
Dann können Sie eine Knoten-App ausführen, um den Server auszuführen.
quelle
Überprüfen Sie, ob Sie das
express
Modul installiert haben . Wenn nicht, verwenden Sie diesen Befehl:und wenn sich Ihr
node_modules
Verzeichnis an einem anderen Ort befindet, setzen Sie dieNODE_PATH
Umgebungsvariable:quelle
CTRL+C / CTRL+V
npm install
Antworten veröffentlichen: Glauben Sie wirklich, dass jemand versuchen würde, etwas auszuführen, ohne zu überprüfen, ob es zuerst installiert wurde? Ernsthaft ...quelle
Die npm-Installation aus Ihrem App-Verzeichnis behebt das Problem, da alle erforderlichen Informationen installiert werden
quelle
Hier einen alten Thread ausgraben, ABER ich hatte denselben Fehler und habe ihn behoben, indem ich zu dem Verzeichnis navigiert habe, in dem sich meine NodeApp befindet und ausgeführt wird
npm install -d
quelle
-d
ist Debug für npm,-D
ist dev Abhängigkeiten.Sofern Sie Node_PATH nicht festlegen , besteht die einzige andere Option darin, Express im App-Verzeichnis zu installieren, z
npm install express --save
. Express ist möglicherweise bereits installiert,node
kann es jedoch aus irgendeinem Grund nicht findenquelle
Sie haben Ihr Express-Modul in einem anderen Verzeichnis als Ihr Projekt. Das ist wahrscheinlich das Problem, da Sie
require()
es lokal versuchen . Versuchen Sie, Ihr Express-Modul von / Users / feelexit / nvm / node_modules / express nach / Users / feelexit / WebstormProjects / learnnode / node_modules / express zu verschieben . Diese Informationen können Ihnen detailliertere Informationen zu den Dateistrukturen von node_module geben.quelle
Wenn sich Ihre Hauptdatei unter befindet, muss sich
/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js
Express unter befinden,/Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules
da der Knoten immer nach Modulen in./node_modules
(und seinem internen Ordner) sucht, wenn der Pfad nicht mit./
oder beginnt/
( weitere Informationen hier ).Ich denke, Sie vermissen es, Ihre Hauptdatei in den Modulordner zu legen
quelle
Führen Sie für dieses Szenario den Befehl npm install express mit Ihrer Eingabeaufforderung cmd für den jeweiligen Ordner aus, in dem Sie das Programm ausführen möchten. Beispiel Ich möchte das Express-Modulprogramm server.js in F: \ nodeSample ausführen. Führen Sie also "npm install express" in diesem bestimmten Ordner aus und führen Sie dann server.js aus
quelle
In seltenen Fällen kann der npm-Cache beschädigt werden. Für mich hat funktioniert:
Im Allgemeinen erkennt der Paketmanager selbst Beschädigungen und ruft diese erneut ab, sodass dies normalerweise nicht erforderlich ist. In meinem Fall stürzte Windows 10 jedoch einige Male ab, und ich vermute, dass dies während eines Abrufvorgangs geschehen ist. Hoffe es hilft jemandem!
Weitere Informationen: https://docs.npmjs.com/cli/cache
quelle
Ich bin auf ein ähnliches Problem gestoßen und am Ende waren es einige alte Abhängigkeiten, die meinen Heroku-Server durcheinander gebracht haben.
Im Ordner meines Projekts habe ich Folgendes ausgeführt:
Ich hoffe, es hilft
quelle
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
Dies geschieht aufgrund fehlender Berechtigungen oder nicht verknüpfter Dateien, während npm arbeitete.
npm
Dies bedeutet, dass die Ausführung als dieser Benutzer nicht über genügend Rechte zum Lesen / Schreiben aus einer Datei verfügt, in diesem Fall package.json.Versuchen Sie,
sudo
vor dem gesamten Befehl hinzuzufügen - er sollte aufgelöst werden.$ sudo npm install -g express
$ Password:*******
Passwort wäre Ihr Administratorkennwort Ihres Mac.
-g
flag installiert dieses Modul (express) im globalen Kontext des Knotens - was bedeutet, dass der Knoten dasexpress
Modul aus jeder js-Datei erkennt / erkennen sollte, ohne einen vollständigen Pfad zu dem verwendeten Modul angeben zu müssen.Hoffe das hilft!!
quelle
Ich hatte das gleiche Problem. Mein Problem war, dass ich vor der Installation von Express in das Projektverzeichnis Node.js in der Befehlszeile wechseln muss.
quelle
Ich vermute, dass dies eine Kursarbeit aus dem Webentwicklungskurs von Colt Steele ist ... Ich habe nach der gleichen Antwort gesucht, warum ich auch diesen Fehler erhalten habe. Colt sagt es nicht, aber Sie nehmen den Ordner node_module und bewegen sich in den neuen Ordner, in dem du arbeitest ... das hat bei mir funktioniert.
quelle
Führen Sie den
npm install express body-parser cookie-parser multer --save
Befehl im selben Verzeichnis wie Ihre Quellcode-NodeJS-Datei aus, um dieses Problem zu beheben. P / s: Überprüfen Sie Ihr Verzeichnis nach dem Ausführungsbefehl, um mehr zu verstehen!quelle
Manchmal stimmt die Version nicht mit package.json überein. Das Problem wurde behoben, indem die Datei package.json überprüft und dann die folgenden Befehle verwendet wurden: npm install [email protected] Es wurde für mich behoben.
quelle
Hast du es versucht
Wenn Sie speziell nur Express suchen
quelle