node.js : '요청'모듈을 찾을 수 없습니다.


92

요청 모듈을 설치 하고 오류가 발생합니다.

module.js:340
    throw err;
          ^
Error: Cannot find module 'request'

이 오류에 대한 모든 게시물을 읽었으며 모듈 요청이 전역 적으로 발견되지 않았기 때문이라는 것을 이해했지만 이미 두 가지 제안을 시도했습니다.

npm 설치 요청 -g

/ usr / loca / bin에 설치해야합니까? 나는 거기에서 그것을 보지 않기 때문에.

sudo npm 링크

/ usr / local / lib / node_modules / request-> / Users / soulsonic / dev / sandbox / node_test / request

각 명령 후에 터미널을 다시 시작했지만 모듈을 찾을 수 없음 오류가 계속 발생합니다.

최신 정보

"npm install request"가 node_modules 아래에 "request"를 추가하지 않았기 때문에 내 초기 디렉토리에 일종의 충돌이 있었음에 틀림 없습니다.

-g 스위치로 실행하면 / usr / local / lib / node_modules / request에 설치된 것을 볼 수 있습니다.

위의 경로가 자동으로 추가되도록 내 프로필을 업데이트해야하는 것 같습니다.

답변:


171

프로젝트 디렉토리로 이동

mkdir TestProject
cd TestProject

이 디렉토리를 프로젝트의 루트로 만듭니다 (기본 package.json파일이 생성됨).

npm init --yes

필요한 npm 모듈을 설치하고 프로젝트 종속성으로 저장합니다 (에 package.json표시됨).

npm install request --save

test.js패키지 예제의 코드를 사용하여 프로젝트 디렉터리에 파일 만들기

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body); // Print the google web page.
  }
});

프로젝트 디렉토리는 다음과 같아야합니다.

TestProject/
- node_modules/
- package.json
- test.js

이제 프로젝트 디렉토리 내에서 노드를 실행하십시오.

node test.js

1
네, 제가 따라온 바로 그 예입니다. 그리고 npm 설치 프로그램을 10 번 실행합니다. 테스트 프로젝트에서 -g 플래그를 사용합니다. 테스트 디렉토리에서 node_modules를 볼 수 있지만 요청이 거기에 없습니다. 계속해서 오류가 발생합니다.
Sonic Soul

이상한 갈등이 있었음에도 불구하고 이것이 올바른 단계이기 때문입니다. 새 디렉토리에서 다시 한 번 작동했습니다. 나는 다른 사람들에게는 드문
Sonic Soul

32

프로젝트 내에서 request 로컬로 설치하기 만하면 됩니다 .

그냥 cd당신의 js 파일과 실행이 포함 된 폴더

npm install request

"npm 설치 요청"후에 내 app.js를 요청 폴더에 복사하고 거기에서 동일한 결과로 실행을 시도했습니다. 그리고 나는 하나 이상의 프로젝트에서 그것을 사용해야 할 것입니다.
Sonic Soul

@SonicSoul : 노드 패키지가 어떻게 작동하는지 오해하고 있습니다. require('request')를 살펴보면 ./node_modules/request여기에 npm install넣습니다. npm install각 앱의 루트 디렉터리에서 실행 해야하며 node_modules폴더를 직접 건 드리면 안됩니다 .
SLaks

실행하기 전에 실행 npm install request해야합니다 npm init. package.json프로젝트 폴더에 생성되는 프롬프트를 따르십시오 . 그런 다음 npm install -S request요청 모듈을 node_modules 폴더에 설치하고 package.json 파일에 요청을 추가합니다
Noah

@SLaks는 루트 폴더에 입력하고 실행해야하는 패키지를 설치할 때마다 의미하지 npm install않습니까? 그들 모두를 위해?
Drumnbass

@Drumnbass : 아니요 npm install. 모든 종속성도 설치합니다.
SLaks

16

나는 같은 문제가 있었는데, 나에게 npm install request --save 문제가 해결되었습니다. 도움이되기를 바랍니다.


1

같은 문제에 부딪 혔는데, 어떻게 작동하는지 보여 드리겠습니다 ..

열린 터미널 :

mkdir testExpress
cd testExpress
npm install request

또는

sudo npm install -g request // If you would like to globally install.

이제 사용하지 마십시오

node app.js또는 node test.js이면이 문제가 발생합니다. 이 명령을 사용하여 발생하는 문제를 인쇄 할 수도 있습니다."node -p app.js"

nodeJs를 시작하는 위의 명령은 더 이상 사용되지 않습니다. 대신 사용

npm start

이거 봐야지 ..

testExpress@0.0.0 start /Users/{username}/testExpress
node ./bin/www

웹 브라우저를 열고 localhost : 3000을 확인하십시오.

빠른 설치 (익스프레스 시작)가 표시되어야합니다.


1

전 세계적으로 설치할 때와 동일한 문제를 만났고 로컬로 설치하려고 시도하면 작동합니다.


1

일부 모듈을 찾을 수없는 경우 정적 URI를 사용해보십시오. 예를 들면 다음과 같습니다.

var Mustache = require("/media/fabio/Datos/Express/2_required_a_module/node_modules/mustache/mustache.js");

이 예제는 64 비트의 Ubuntu Gnome 16.04, node -v : v4.2.6, npm : 3.5.2에서 실행됩니다. 참조 : Ben Nadel의 블로그


0

ReferenceError : 변수를 찾을 수 없습니다 : 필요합니다.

"npm"을 설치했으면 "localhost" "127.0.0.1"에 대한 스크립트를 정상적으로 실행할 수 있습니다.

"npm"에서 "options"와 함께 http.clientRequest ()를 사용하는 경우 모듈 내부에 "RequireJS"를 설치해야합니다.

모듈은 Node.js에서로드 할 수있는 node_modules 디렉토리의 모든 파일 또는 디렉토리입니다. http.clientRequest (options)가 작동하도록 "RequiereJS"를 설치하십시오.


0

버전으로 모듈을 로컬에 설치하려고 시도했지만 작동했습니다!

npm install request@^2.*

감사.

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