2014-06-20 6 views
18

Le titre indique la plupart du problème. Lorsque je tente de lancer node . je reçois:nœud. et npm commencent ne fonctionnent pas

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 

Il semble y avoir aucun dossier modules réellement. Je cours juste express dans un répertoire vide

npm fonctionne bien cependant. C'est avec une nouvelle installation rapide si c'est important. Toute aide serait géniale, merci!

les pleins messages d'erreur:

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 
+0

Exécutez 'node app'. – Michael

+0

Je rand 'node app' et il a donné la même erreur. En fait c'est une erreur sur le 'Erreur: Impossible de trouver le module 'static-favicon''. – Bren

+0

Quelle version d'Expressjs utilisez-vous? – Michael

Répondre

34

Après avoir utilisé le express-generator pour générer l'application de noeud, vous devez installer les dépendances pour le projet. Cela se fait via:

$ npm install 

Une fois cela fait, vous pouvez démarrer l'application à l'aide npm:

$ npm start 

Par défaut, l'autorisation expresse des applications générées indiquent ce que la commande start pour npm (vous pouvez voir ce dans le fichier package.json):

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

donc, pour exécuter la même chose via la ligne de commande, vous devez exécuter:

$ node ./bin/www 
+0

Eh bien npm peut commencer mais pas de nœud ou pour toujours. Cependant, c'est tout ce dont j'ai besoin, alors j'accepte la réponse. Je pensais qu'express installait automatiquement les modules et comme il n'y en avait pas, il y avait quelque chose qui clochait. Bien que je l'utilisais sur une application qui fonctionnait avant, je ne sais vraiment pas exactement pourquoi cela a aidé avec celui-là. Hmmm. Merci! – Bren

+0

Lorsque vous exécutez 'npm start' vous exécutez vraiment' node./Bin/www' (ce que j'essayais de dire plus haut dans ma réponse). – dylants

1

donné un arbre dir comme:

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

si vous essayez d'accéder favicon.ico dans votre app.js

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

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

la var pour favicon peut ne pas être ce que vous attendez. La meilleure façon de servir les fichiers statiques serait de mettre en place un répertoire statique avec un itinéraire si quelqu'un frapper cette route avec un param obtient que les fichiers: par exemple:

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

où param serait le nom du fichier (c'est un exemple utilisant Hapi - express a quelque chose de similaire pour servir des fichiers statiques)

+0

Il semble n'y avoir aucun dossier de modules, donc rien à exiger. Ne devrait pas exprimer en créer un? La ligne est actuellement 'var favicon = require ('static-favicon');'. – Bren

+0

où est-static-favicon? dans le même répertoire? './thepath' un répertoire? '../thepath' – Dan

+0

Honnêtement, je suis nouveau au noeud donc je ne sais pas. Est-ce un module local ou global? Il ne semble pas être dans l'une des applications express simples que j'ai faites. – Bren

0

Utilisez serve-favicon au lieu de static-favicon. Vérifiez également que vous avez installé serve-favicon correctement. Utilisez cd serve-favicon, vérifiez package.json, puis exécutez npm install pour que toutes les dépendances soient correctement installées.

0

Est-ce npmstart qui installe tous les modules nécessaires à votre projet

5

J'ai eu le même problème après l'exécution du générateur express sur un répertoire non vide avec certains modules de noeuds déjà installés dans node_modules, en particulier s'exprimer. nuke simplement le dossier, réinstaller toutes vos dépendances et vous devriez être bon d'aller:

rm -rf ./node_modules 
npm install 
npm start 

EDIT: Tuns sur que à un certain moment dans le processus que j'avais installé et enregistré serve-favicon que la package.json locale .On dirait que le générateur express n'a pas réussi à ajouter cette dépendance. Par conséquent:

npm install serve-favicon --save 
npm start 
Questions connexes