Le titre dit la plupart du problème. Lorsque j'essaie d'exécuter node .
, je reçois:
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 n'y avoir aucun dossier de modules en réalité. Je cours juste express
dans un répertoire vide
nPM fonctionne bien cependant. Ceci est avec une nouvelle installation express si cela compte. Toute aide serait géniale, merci!
les messages d'erreur complets:
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
Après avoir utilisé le express-generator
pour générer l’application de noeud, vous devez installer les dépendances du projet. Ceci se fait via:
$ npm install
Une fois que cela est fait, vous pouvez démarrer l'application en utilisant npm
:
$ npm start
Par défaut, les applications générées express indiquent ceci comme commande start
pour npm
(vous pouvez l'afficher dans le fichier package.json
):
"start": "node ./bin/www"
Donc, pour exécuter la même chose via la ligne de commande, exécutez:
$ node ./bin/www
J'ai eu le même problème après avoir exécuté le générateur express sur un répertoire non vide avec des modules de nœud déjà installés dans node_modules
, en particulier exprimer. Classez simplement le dossier, réinstallez toutes vos dépendances et vous devriez être prêt à partir:
rm -rf ./node_modules
npm install
npm start
EDIT: J'annonce qu'à un certain stade du processus, j'ai installé serve-favicon
et l'ai enregistré dans le package.json local. On dirait que le générateur express n'a pas réussi à ajouter cette dépendance. Donc:
npm install serve-favicon --save
npm start
étant 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'));
le var pour favicon peut ne pas être ce que vous attendez. Le meilleur moyen de servir des fichiers statiques serait de configurer un répertoire statique avec une route afin que toute personne rencontrant cette route avec un paramètre obtienne ces fichiers: par exemple:
https://mynodeapp.com/static/images/{param}
où param serait le nom du fichier (ceci est un exemple utilisant Hapi - express a quelque chose de similaire pour servir des fichiers statiques)
Faites npmstart
qui installe tous les modules requis pour votre projet
Utilisez serve-favicon au lieu de static-favicon . Vérifiez également que serve-favicon est installé correctement . Cd servant-favicon, vérifiez package.json, puis exécutez npm install pour que toutes les dépendances soient installées correctement.