webentwicklung-frage-antwort-db.com.de

knoten. und npm start nicht

Der Titel sagt das meiste Problem aus. Wenn ich versuche, node . auszuführen, bekomme ich:

    module.js:340
    throw err;
          ^
Error: Cannot find module 'static-favicon'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

Es scheint tatsächlich keinen Modulordner zu geben. Ich lasse nur express in einem leeren Verzeichnis laufen

npm funktioniert aber gut. Dies ist mit einer neuen Expressinstallation, wenn es darauf ankommt. Jede Hilfe wäre super, danke!

die vollständigen Fehlermeldungen:

 new-Host-2:~ Brennan$ cd Desktop/
new-Host-2:Desktop Brennan$ mkdir test4
new-Host-2:Desktop Brennan$ cd test4
new-Host-2:test4 Brennan$ express -e

   create : .
   create : ./package.json
   create : ./app.js
   create : ./public
   create : ./public/javascripts
   create : ./public/images
   create : ./public/stylesheets
   create : ./public/stylesheets/style.css
   create : ./routes
   create : ./routes/index.js
   create : ./routes/users.js
   create : ./views
   create : ./views/index.ejs
   create : ./views/error.ejs
   create : ./bin
   create : ./bin/www

   install dependencies:
     $ cd . && npm install

   run the app:
     $ DEBUG=test4 ./bin/www

new-Host-2:test4 Brennan$ node app.js

module.js:340
    throw err;
          ^
Error: Cannot find module 'static-favicon'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/Brennan/Desktop/test4/app.js:3:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
new-Host-2:test4 Brennan$ npm start app.js
npm ERR! Error: ENOENT, open '/Users/Brennan/Desktop/test4/node_modules/app.js/package.json'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Darwin 12.4.0
npm ERR! command "node" "/usr/local/bin/npm" "start" "app.js"
npm ERR! cwd /Users/Brennan/Desktop/test4
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.7
npm ERR! path /Users/Brennan/Desktop/test4/node_modules/app.js/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/Brennan/Desktop/test4/npm-debug.log
npm ERR! not ok code 0
new-Host-2:test4 Brennan$ forever app.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms

module.js:340
    throw err;
          ^
Error: Cannot find module 'static-favicon'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/Brennan/Desktop/test4/app.js:3:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
error: Forever detected script exited with code: 8
19
Bren

Nachdem Sie mit express-generator die Knotenanwendung generiert haben, müssen Sie die Abhängigkeiten für das Projekt installieren. Dies geschieht über:

$ npm install

Sobald dies geschehen ist, können Sie die App mit npm starten:

$ npm start

Standardmäßig geben die durch Express generierten Apps dies als start-Befehl für npm an (Sie können dies in der package.json-Datei anzeigen):

"start": "node ./bin/www"

Um dasselbe über die Befehlszeile auszuführen, würden Sie Folgendes ausführen:

$ node ./bin/www
34
dylants

Ich hatte das gleiche Problem, nachdem ich den Express-Generator in einem nicht leeren Verzeichnis ausgeführt hatte, in dem einige Knotenmodule bereits in node_modules installiert waren, insbesondere express. Kehren Sie einfach den Ordner um, installieren Sie alle Ihre Abhängigkeiten neu und Sie sollten sich auf den Weg machen:

rm -rf ./node_modules
npm install
npm start

EDIT: Stellt fest, dass ich serve-favicon irgendwann im Prozess installiert und in der lokalen package.json gespeichert habe. Sieht aus, als hätte der Express-Generator diese Abhängigkeit nicht hinzugefügt. Deshalb:

npm install serve-favicon --save
npm start
8

gegeben dir Baum wie:

myapp
 - lib
  - favicon.ico
 - app.js
 - package.json
 - node_modules (npm installs all modules in here)

wenn Sie versuchen, auf favicon.ico in Ihrer app.js zuzugreifen

var express = require('express'),
    fs = require('fs'); // this is for reading static files 

var favicon = require(fs.readFileSync('./lib/favicon.ico'));

die Var für Favicon ist möglicherweise nicht das, was Sie erwarten. Die beste Möglichkeit zum Bereitstellen statischer Dateien besteht darin, ein statisches Verzeichnis mit einer Route einzurichten, sodass jeder, der diese Route mit einem Parameter ausführt, diese Dateien erhält:

https://mynodeapp.com/static/images/{param}

dabei wäre param der Name der Datei (dies ist ein Beispiel, in dem Hapi verwendet wird - express hat etwas Ähnliches für das Bereitstellen statischer Dateien).

1
Dan

Führen Sie npmstart aus, um alle für Ihr Projekt erforderlichen Module zu installieren 

0
santhosh

Verwenden Sie "serve-favicon" anstelle von "static-favicon". Überprüfen Sie außerdem, ob "serve-favicon" ordnungsgemäß installiert ist. Führen Sie cd serv-favicon aus, überprüfen Sie package.json und führen Sie dann npm install aus, um alle Abhängigkeiten ordnungsgemäß zu installieren.

0
user4447835