Node. и npm start не работают
Название говорит о большей части проблемы. Когда я пытаюсь запустить node .
, я получаю:
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
На самом деле папка с модулями отсутствует. Я просто запускаю express
в пустом каталоге
npm работает отлично. Это касается новой экспресс-установки, если это имеет значение. Любая помощь была бы потрясающей, спасибо!
полные сообщения об ошибках:
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
Ответы
Ответ 1
После использования express-generator
для создания приложения node вам необходимо установить зависимости для проекта. Это делается с помощью:
$ npm install
Как только это будет сделано, вы можете запустить приложение, используя npm
:
$ npm start
По умолчанию экспресс-созданные приложения определяют это как команду start
для npm
(вы можете просмотреть это в файле package.json
):
"start": "node ./bin/www"
Итак, чтобы выполнить одно и то же через командную строку, вы должны запустить:
$ node ./bin/www
Ответ 2
У меня была такая же проблема после запуска экспресс-генератора в непустой директории с некоторыми node модулями, уже установленными в node_modules
, особенно выражать себя. Просто держите папку, переустановите все свои зависимости, и вам должно быть хорошо:
rm -rf ./node_modules
npm install
npm start
РЕДАКТИРОВАТЬ: Отлаживает то, что на каком-то этапе процесса я установил serve-favicon
и сохранил его на локальном package.json. Похоже, что экспресс-генератор не смог добавить эту зависимость. Поэтому:
npm install serve-favicon --save
npm start
Ответ 3
учитывая дерево, подобное:
myapp
- lib
- favicon.ico
- app.js
- package.json
- node_modules (npm installs all modules in here)
если вы пытаетесь получить доступ к favicon.ico в своем app.js
var express = require('express'),
fs = require('fs'); // this is for reading static files
var favicon = require(fs.readFileSync('./lib/favicon.ico'));
var for favicon может быть не тем, что вы ожидаете. Лучшим способом обслуживания статических файлов было бы установить статический каталог с маршрутом, чтобы каждый, попавший в этот маршрут с параметром, получал такие файлы: например:
https://mynodeapp.com/static/images/{param}
где param будет именем файла (это пример использования Hapi-express имеет нечто похожее на обслуживание статических файлов)
Ответ 4
Используйте знак-favicon вместо static-favicon.
Также убедитесь, что у вас есть сервис-favicon, установленный правильно.
Сделайте cd serve-favicon, проверьте package.json, а затем запустите npm install, чтобы все зависимости были установлены правильно.
Ответ 5
Do npmstart
, который устанавливает все необходимые модули для вашего проекта