Node.js 오류 : Express 모듈을 못 견딜 수 없습니다
첫 번째 node.js 앱을 작성했지만 Express 라이브러리를 사용할 수 없습니다.
C:\ChatServer\Server>node server.js
module.js:340
throw err;
^
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:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\ChatServer\Server\server.js:6:9)
at Object.<anonymous> (C:\ChatServer\Server\server.js:25:4)
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)
그러나 express는 -g
키로 묶여 있습니다 .
C:\ChatServer\Server>npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/connect/2.7.11
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.4
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/mkdirp/0.3.4
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/connect/2.7.11
npm http 304 https://registry.npmjs.org/commander/0.6.1
npm WARN package.json range-parser@0.0.4 No repository field.
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/fresh/0.1.0
npm http 304 https://registry.npmjs.org/methods/0.0.1
npm http 304 https://registry.npmjs.org/send/0.1.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json methods@0.0.1 No readme data.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm http 304 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/qs/0.6.5
npm http GET https://registry.npmjs.org/send/0.1.1
npm http GET https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/bytes/0.2.0
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http 304 https://registry.npmjs.org/mime/1.2.6
npm http 304 https://registry.npmjs.org/bytes/0.2.0
npm WARN package.json bytes@0.2.0 No repository field.
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm WARN package.json pause@0.0.1 No repository field.
npm http 304 https://registry.npmjs.org/formidable/1.0.14
npm http 304 https://registry.npmjs.org/qs/0.6.5
npm http 304 https://registry.npmjs.org/send/0.1.1
npm http 304 https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
C:\Users\Dmitry\AppData\Roaming\npm\express -> C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express\bin\express
npm WARN package.json policyfile@0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
express@3.2.6 C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── debug@0.7.2
├── commander@0.6.1
├── mkdirp@0.3.4
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.11 (pause@0.0.1, qs@0.6.5, bytes@0.2.0, cookie@0.0.5, formidable@1.0.14, send@0.1.1)
많은 정보 :
C:\ChatServer\Server>npm --version
1.2.24
C:\ChatServer\Server>node --version
v0.10.9
C:\ChatServer\Server>npm --version
1.2.24
C:\ChatServer\Server>npm ls -g installed express
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json range-parser@0.0.4 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json policyfile@0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json bytes@0.2.0 No repository field.
npm WARN package.json pause@0.0.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
C:\Users\Dmitry\AppData\Roaming\npm
└── express@3.2.6
C:\ChatServer\Server>npm ls installed express
C:\ChatServer\Server
└── (empty)
이 문제를 어떻게 해결합니까? ( 없이 설치 해야-g
돌아가?)
응용 프로그램 ( node_modules
폴더) 많은 에 Express를 로컬로 설치해야합니다 .
$ npm install express
그 이유는 항상 로컬에서 응용 프로그램을 확인하기 때문입니다. 전역 설치는 유닛 테스트 러너 또는 부트 스트 래퍼와 같은 시스템 전체의 사용 가능한 바이너리를 설정하기위한 것입니다.
Express를 사용하면 전역에서 express
응용 프로그램을 부트 할 수있는 바이너리가 제공됩니다. 자세한 내용을 보려면
$ express --help
그래서, 최종 질문에 대답 : 예 , 당신은없이 설치해야합니다 -g
.
나를 위해 다음과 같이 --save 옵션을 사용하여 로컬로 Express를 사용할 때 작동했습니다.
$ npm install express --save
express
모듈을 설치하지 않았는지 확인하고 다음 명령을 사용하십시오.
npm install express
node_modules
가 다른 위치 디렉토리에 있으면 NODE_PATH
Environmental & 변수를 설정 하십시오.
set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
Golo는 솔루션을 잘 설명했지만 추가 할 수 있습니다.
전체 노드 모듈이
/usr/local/lib/node_modules
노드를 시작하면 blabla.js 모듈이 검색됩니다.
/lib
그럴 경우에는 모든 것이 링크를 만드는 것입니다.
sudo ln -s /usr/local/lib/node_modules/ /lib/node_modules
귀하의 경우 express
모듈이에 설치되어있는 C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express
것이 모듈을 디렉토리로 가져와야합니다. 따라서 express
모듈 폴더 파일 C:\Users\Dmitry\AppData\Roaming\npm\node_modules\
을 다음과 같이 디렉토리에 복사해야합니다 C:\ChatServer\Server\node_modules
. 프로젝트 폴더에 'node_modules'라는 이름의 폴더가없는 경우 먼저 만든 다음 해당 파일을이 폴더에 넣습니다. 이 방법은 Windows PC에서 저에게 저에게있었습니다. 노드 서버를 다시 시작하고 명령 노드를 다시 실행하십시오 C:\ChatServer\Server>node server.js
. 지금 작동합니다 !!!!
Ubuntu 기반 OS에서 시도해 볼 수 있습니다.
sudo apt-get install node-express
Mint에서 나를 위해 일하고 있습니다.
시스템에 노드 를 설치했으면 Windows 용 다음을 사용하여 프로젝트에 대해 로컬로 Express를 설치합니다.
npm install express
또는
npm install express --save
다음을 사용하여 전역 액세스 권한을 부여 할 수 있습니다.
npm install -g express --save
모든 모듈에도 불구하고 vscode 에서이 오류가 발생했습니다. 나는 타이프 펼쳐보기를 사용하고 있습니다.에서 server.ts
파일의 모든 수입은 구불 구불 한 밑줄 빨간색했다. tsconfig.json
파일 에 결함이있는 것으로 밝혀졌습니다 .
{
"compileOnSave": false,
"compilerOptions": {
"module": "commonjs", // Previously this value was `es6`
"target": "es6",
"allowSyntheticDefaultImports": true,
"baseUrl": "public",
"sourceMap": true,
"outDir": "dist",
"jsx": "react",
"strict": true,
"preserveConstEnums": true,
"removeComments": true,
"noImplicitAny": true,
"allowJs": true
},
"exclude": [
"node_modules",
"build"
]
}
하드 디스크에 하나의 폴더 (예 : sample1)를 만들고 명령 프롬프트로 이동하여 : cd를 입력하고 sample1 폴더의 경로를 제공 한 다음 모든 모듈을 설치합니다.
npm 설치 컴퓨터
npm 설치 제이드
npm 설치 socket.io
그런 다음 응용 프로그램을 만드는 모든 것을 sample1 폴더에 저장하십시오.
시도 해봐 ...
응용 프로그램 디렉토리로 이동하여 아래 명령을 사용하여 컴퓨터 모듈을 설치하십시오. npm install express --save 그런 다음 아래 명령을 사용하여 모든 설치 모듈을 설치하십시오.npm ls 모든 로컬 설치 모듈을 볼 수 있습니다.
나는 같은 문제에 부딪쳤다. / usr / local / bin /에 전역 설치되었습니다. 'npm 설치'를 할 때 로컬 디렉토리 생성의 node_modules에 존재하지 않습니다.
- $ HOME에 파일 이름 .npmrc가 있는지 확인하십시오.
- 'global = true'인 경우 'global = false'로 변경하십시오.
- 이제 애플리케이션 디렉토리에서 'npm install'을 수행하십시오. 응용 프로그램 디렉토리 내의 node_modules (로컬)에 모든 패키지 모듈을 가져옵니다.
- sudo brew 제거 노드
- 양조 업데이트
- 양조 업그레이드
- 양조 청소
- 양조 설치 노드
- sudo chown -R $ (whoami) / usr / 지역
- 양조 링크-노드 쓰기 쓰기
- sudo brew postinstall 노드
이것은 MacOS X Sierra 에서 나를 위해 일했습니다.
참고 URL : https://stackoverflow.com/questions/17162308/node-js-error-cannot-find-module-express
'IT' 카테고리의 다른 글
Oracle을 사용하여 선택 (0) | 2020.07.10 |
---|---|
MAMP에서 PHP 5.5.3 캐싱 중지 (0) | 2020.07.10 |
어디에서나 정수를 연결 (0) | 2020.07.10 |
Docker Alpine 컨테이너에서 쉘 시작 (0) | 2020.07.10 |
클래스에 주어진 서명의 멤버 함수가 있는지 확인 (0) | 2020.07.10 |