node.js, 오류 : 'express'모듈을 찾을 수 없습니다.


125

저는 Node.js를 처음 사용하며 첫 번째 웹 애플리케이션을 구축하기 위해 express를 배우려고합니다. 첫 번째 샘플 코드에 갇혀서 실행하는 데 도움이 필요합니다. 이 질문을 게시하기 전에 스택 오버플로를 검색하고 유사한 질문을 찾았지만 여전히 수정할 수 없었습니다.

오류 : 'express'모듈을 찾을 수 없습니다.

내가 사용하고 10.8.2 OS 맥 . .js를 사용하여 Node.js를 설치했습니다 nvm.

node.js : 0.8.20 노드 경로 : /Users/feelexit/nvm/v0.8.20/bin/node 표현할 경로 : / Users / feelexit / nvm / node_modules / express

내 샘플 코드는 다음과 같습니다.이 파일은 다음 위치에 있습니다.

/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js

var express = require('express');

var app = express();

app.get('/', function(req, res){

    res.send('welcome to express');
});

app.listen(3000);

이 명령을 실행하려고 할 때 node index.js

다음과 같은 오류 메시지가 표시됩니다. 문제를 해결하도록 도와주세요.

감사합니다.

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js:1:81)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
feelexits-Mac:node_modules feelexit$ 

chovy의 질문에 대한 답변 업데이트 :

feelexits-Mac:~ feelexit$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.2.0
npm ERR! command "/Users/feelexit/nvm/v0.8.20/bin/node" "/Users/feelexit/nvm/v0.8.20/bin/npm" "install"
npm ERR! cwd /Users/feelexit
npm ERR! node -v v0.8.20
npm ERR! npm -v 1.2.11
npm ERR! path /Users/feelexit/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/feelexit/npm-debug.log
npm ERR! not ok code 0

이 뜻에 도움이 될 수 있습니다 stackoverflow.com/questions/9133784/...
user568109

30
사용자가 입력나요npm install
chovy의

1
Express 라이브러리가 "node_modules"폴더에 있는지 확실합니까? 당신은 또한 당신의 이동 시도 할 수 있습니다 하는 index.js 하나의 디렉토리를 백업 파일을 "/ 사용자 / feelexit / WebstormProjects / learnnode /"와 node_modules 혼자 폴더를 둡니다.
기본적으로 '

1
package.json파일을 게시하십시오 . 문제를 디버깅하는 데 도움이됩니다.
Akhil Raina 2013

@chovy, 나는 npm install express를 사용하여 express를 설치합니다. "npm install"만 수행하는 작업은 무엇입니까?
qinking126

답변:


157

그것은 말한다

 Cannot find module 'express'

Express가 설치되어 있습니까? 그렇지 않은 경우 이것을 실행하십시오.

 npm install express

그리고 프로그램을 다시 실행하십시오.


1
제 경우에는 문제가 해결되지 않습니다. npm install express이 오류를 표시합니다 npm ERR! Error: UNKNOWN, symlink '../express/bin/express'. 더 깊은 문제인 것 같습니다.
Sliq

npm에 대한 디렉토리 권한을 수정하지 않은 경우 sudo를 사용하십시오. 어쨌든 "sudo npm install"이 더 나은 옵션입니다.
Gaurav Gupta 2014

심볼릭 링크 오류는 전역 적으로 설치하고 심볼릭 링크가 끊어진 경우 자주 발생합니다. 시도 npm link... 각각의 연결을 다시 만들
프랭크 Nocke에게

@Sliq 귀하의 솔루션으로 시도했지만 문제를 해결할 수 없습니다. 도와 주시겠습니까?
VjyV

"그리고 프로그램을 다시 실행하십시오"를 간과하지 마십시오. 제 경우에는 process manager. 저절로 다시 시작되지 않았습니다.
Tadej

42

터미널에서 급행을 한 후

 npm install

모든 종속성을 설치합니다.

그런 다음 노드 앱을 수행하여 서버를 실행할 수 있습니다.


7
여기에는 패키지 목록 파일, 즉 .json.이 필요하다는 점을 지적해야합니다. 항상 그런 것은 아닙니다.
Pogrindis 2011

.js 노드 파일이있는 동일한 디렉토리의 @VjyV. 그러나 필요한 종속성을 설치할 수 있도록 디렉토리에 package.json 파일이 있어야합니다.
Saurabh Rana

34

express모듈 을 설치했는지 확인하십시오 . 그렇지 않은 경우 다음 명령을 사용하십시오.

npm install express

node_modules디렉토리가 다른 위치에 있으면 NODE_PATH환경 변수를 설정 하십시오.

set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%

12
답변을 게시하는 모든 사람에게 CTRL+C / CTRL+V npm install정답입니다. 누군가가 먼저 설치되었는지 확인하지 않고 무언가를 실행하려고 할 것이라고 생각하십니까? 심각하게 ...
Claudio Holanda 2014-06-14

3
사소한 세부 정보 만 추가하면 됩니다. Node.js 설치 폴더 나 AppData의 npm 폴더가 아닌 애플리케이션의 디렉토리에서 install express 명령을 실행해야합니다 . 제가 만든 실수 였기 때문에 SDK 애드온이라고 생각했기 때문입니다.
Alex

29

 npm 설치-익스프레스 저장   
이것은 나를 위해 일했습니다 .express.js 설치를 다시 실행하십시오.


11

앱 디렉토리 내에서 npm을 설치하면 필요한 모든 것을 설치하므로 문제가 해결됩니다.


5

여기에서 오래된 스레드를 파헤 치지 만 동일한 오류가 발생하여 NodeApp이 상주하고 실행중인 디렉토리로 이동하여 해결했습니다. npm install -d


확실하지 왜 또는 어떻게 중요한 그러나 이것은 당신의 devdependencies에 설치 : docs.npmjs.com/cli/install
가이 로우

1
@GuyLowe -d는 npm에 대한 디버그 -D이며 개발 종속성입니다.
John Pavek

4

Node_PATH 를 설정하지 않는 한 다른 유일한 옵션은 npm install express --save. Express가 이미 설치되어 있지만 node어떤 이유로 찾을 수 없습니다.


이것은 나를 위해 일했으며 .js 파일과 동일한 디렉토리에서 설치 명령을 더 잘 실행하십시오. 또한 "npm init"명령을 실행하여 추가 문제를 방지하기 위해 package.json 파일을 생성 할 수 있습니다.
emarshah dec

3

프로젝트와 다른 디렉토리에 익스프레스 모듈이 있습니다. require()로컬에서 시도하기 때문에 아마도 문제 일 것입니다 . 익스프레스 모듈을 / Users / feelexit / nvm / node_modules / express 에서 / Users / feelexit / WebstormProjects / learnnode / node_modules / express로 이동해보세요 . 이 정보 는 node_module 파일 구조에 대한 자세한 정보 를 제공 할 수 있습니다.


2

주 파일이 위치 하는 경우 경로가 또는 ( 자세한 정보는 여기에서)로 시작하지 않을 때 노드가 항상 (및 내부 폴더) 에서 모듈을 찾으므로 /Users/feelexit/WebstormProjects/learnnode/node_modules/index.jsExpress 는 위치 해야합니다 ./Users/feelexit/WebstormProjects/learnnode/node_modules/node_modules./node_modules.// )로

모듈 폴더에 메인 파일을 놓친 것 같습니다.


2

이 시나리오의 경우 프로그램을 실행할 각 폴더에 대한 cmd 프롬프트를 사용하여 npm install express 명령을 실행하십시오. 예제 F : \ nodeSample에서 익스프레스 모듈 프로그램 server.js를 실행하고 싶습니다. 특정 폴더에서 "npm install express"를 실행 한 다음 server.js를 실행하십시오.


1

npm install express body-parser cookie-parser multer --save이 문제를 해결하려면 소스 코드 nodejs 파일과 동일한 디렉토리에서 명령을 실행하십시오 . P / s : 더 많은 것을 이해하려면 명령 실행 후 디렉토리를 확인하십시오!


1

드물지만 npm 캐시가 손상 될 수 있습니다. 저에게 효과가 있었던 것은 다음과 같습니다.

npm cache clean --force

일반적으로 패키지 관리자는 자체적으로 손상을 감지하고 다시 가져 오므로 일반적으로 필요하지 않습니다. 그러나 제 경우에는 Windows 10이 몇 번 충돌했으며 이것이 가져 오기 작업 중일 수 있다고 생각합니다. 누군가에게 도움이되기를 바랍니다!

추가 정보 : https://docs.npmjs.com/cli/cache


1

비슷한 문제가 발생했으며 결국 내 Heroku 서버를 엉망으로 만든 오래된 종속성 문제였습니다.

내 프로젝트 폴더에서 다음을 실행했습니다.

npm uninstall
npm install

도움이 되길 바랍니다


0

npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'

이것은 npm이 작동하는 동안 권한이 없거나 링크되지 않은 파일로 인해 발생합니다.

의미, 그 실행 npm ,이 사용자로 하면 파일 (이 경우 package.json)에서 읽기 / 쓰기 권한이 충분하지 않습니다.

sudo전체 명령 앞에 추가해보십시오 . 해결되어야합니다.

$ sudo npm install -g express
$ Password:*******

암호는 Mac의 관리자 암호입니다.

-g 플래그는 노드의 전역 컨텍스트에이 모듈 (익스프레스)을 설치합니다. 즉, 노드가 인식해야합니다. express 사용중인 모듈에 대한 전체 경로를 제공하지 않고도 모든 js 파일 내에서 모듈을 합니다.

도움이 되었기를 바랍니다!!


0

나는 같은 문제가 있었다. 내 문제는 Express를 설치하기 전에 명령 줄에서 Node.js 프로젝트 디렉토리로 변경해야한다는 것입니다.

cd /Users/feelexit/WebstormProjects/learnnode/node_modules/

0

이것이 Colt Steele의 Web Development 과정의 과정이라고 생각합니다. 왜 제가 그 오류로 끝났는지에 대한 동일한 답을 찾고있었습니다. Colt는 그렇게 말하지 않지만 node_module 폴더를 가져 와서 이동합니다. 작업중인 새 폴더에 ... 그게 저에게 효과적이었습니다.


0
D:\learn\Node.js\node app.js
module.js:549
    throw err;
    ^

Error: Cannot find module 'body-parser'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

때때로 버전이 package.json과 일치하지 않음 package.json을 확인하여 문제를 해결 한 후 다음 명령을 사용하십시오. npm install body-parser@1.13.2 그것은 나를 위해 해결되었습니다.


0

시도해 보셨습니까

npm install

당신이 특별히 찾고 있다면 그냥 익스프레스

npm install --save express
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.