2014-06-20 2 views
18

제목은 대부분의 문제를 말합니다. node .을 실행하려고하면 다음과 같이 표시됩니다.노드. 그리고 npm 시작은 작동하지 않습니다

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

'node app'을 실행하십시오. – Michael

+0

랜덤'노드 앱'과 같은 오류가 발생했습니다. 사실 그것은 '오류 : 모듈을 찾을 수 없습니다'정적 - favicon'' 오류입니다. – Bren

+0

어떤 익스프레스 버전을 사용하고 있습니까? – Michael

답변

34

express-generator을 사용하여 노드 응용 프로그램을 생성 한 후에는 프로젝트의 종속성을 설치해야합니다. (

$ npm start 

는 기본적으로 명시 앱이 npm에 대한 start 명령으로이 상태 생성을 수행 할 수 있습니다 :이 작업이 완료되면, 당신은 npm를 사용하여 응용 프로그램을 시작할 수 있습니다

$ npm install 

:이은을 통해 이루어집니다)이 package.json 파일이를 참조하십시오

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

그래서 명령 줄을 통해 같은 일을 실행하기 위해, 당신은 실행됩니다 :

$ node ./bin/www 
+0

잘 npm은 시작할 수 있지만 노드 또는 영원히 시작할 수는 없습니다. 그러나, 그게 내가 대답을 받아 들일 수 있도록 필요한 모든 것. Express는 자동으로 모듈을 설치 한 것으로 생각하고 거기에 없었기 때문에 잘못된 것이있었습니다. 이전에 작동했던 응용 프로그램에서이 도구를 사용하고 있었지만 실제로 이것이 왜 그 도구로 도왔는지 정확히 알지 못합니다. 흠. 감사! – Bren

+0

'npm start'를 실행하면 실제로'node./bin/www'를 실행하고 있습니다. (이것은 내 대답에서 위에 말하려고했던 것입니다). – dylants

1

주어진 디렉토리 트리와 같은 :

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

당신이 당신의 app.js에 favicon.ico의 액세스를 시도하는 경우

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

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

favicon에 대한 var는 예상 한 바가 아닐 수도 있습니다. 예를 들면 다음과 같습니다 :

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

이 PARAM은 (파일의 이름이됩니다 어디 PARAM과 함께 그 길을 치는 사람이 파일이 있음을 얻을 수 있도록 정적 파일을 제공하기위한 가장 좋은 방법은 경로와 정적 디렉토리를 설정하는 것입니다 이것은 Hapi를 사용하는 예제입니다 - express는 정적 파일을 제공하는 것과 비슷합니다)

+0

모듈 폴더가 없으므로 필요하지 않습니다. 하나를 만들지 말아야할까요? 현재 줄은'var favicon = require ('static-favicon');입니다. – Bren

+0

static-favicon은 어디에 있습니까? 같은 디렉토리에 있습니까? './thepath'하나의 디렉토리까지? '../thepath' – Dan

+0

솔직히, 나는 노드에 익숙하지 않기 때문에 잘 모르겠습니다. 로컬 모듈입니까, 글로벌 모듈입니까? 그것은 내가 만든 간단한 익스프레스 애플 리케이션에있는 것 같지 않습니다. – Bren

0

static-favicon 대신 serve-favicon을 사용하십시오. 또한 serve-favicon을 올바르게 설치했는지 확인하십시오. cd serve-favicon을 실행하고 package.json을 확인한 다음 npm install을 실행하여 모든 종속성을 올바르게 설치하십시오.

0

특히 자신을 표현하고, 이미 node_modules에 설치된 일부 노드 모듈 비어 있지 않은 디렉토리에 명시 발전기를 실행 한 후 동일한 문제가 있었다 프로젝트

5

에 대한 모든 필요한 모듈을 설치하는 npmstart를 수행합니다. 간단하게 모든 종속성을 다시 설치 폴더를 핵무기와 당신이 가서 잘되어야합니다 :

rm -rf ./node_modules 
npm install 
npm start 

편집 : 나는 serve-favicon를 설치하고 저장 한 과정에서 어떤 단계에 있다고 툰스 그 지역 package.json에 .표현 생성기가 그 의존성을 추가하지 못한 것 같습니다. 그러므로 :

npm install serve-favicon --save 
npm start 
관련 문제