IT

Node.js 오류 : Express 모듈을 못 견딜 수 없습니다

lottoking 2020. 7. 10. 07:45
반응형

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_PATHEnvironmental & 변수를 설정 하십시오.

 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에 존재하지 않습니다.

  1. $ HOME에 파일 이름 .npmrc가 있는지 확인하십시오.
  2. 'global = true'인 경우 'global = false'로 변경하십시오.
  3. 이제 애플리케이션 디렉토리에서 '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

반응형