node.js: não é possível encontrar o módulo 'pedido'


92

Instalei o módulo de solicitação e recebo o erro:

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

Li todas as postagens sobre esse erro e entendo que isso ocorre porque as solicitações de módulo não foram encontradas globalmente, mas já tentei as 2 sugestões

pedido de instalação npm -g

isso deve instalá-lo em / usr / loca / bin? porque eu não vejo isso lá.

e

link sudo npm

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

Eu reiniciei o terminal após cada comando, mas continuo recebendo o erro de módulo não consegue encontrar.

atualizar

deve ter havido algum tipo de conflito em meu diretório inicial, porque "npm install request" não estava adicionando "request" em node_modules (há 10 outros lá) .. depois de mudar para um novo diretório, ele simplesmente funcionou.

se eu executá-lo com o switch -g, vejo que está sendo instalado em / usr / local / lib / node_modules / request.

Parece que eu só preciso atualizar meu perfil para que o caminho acima seja adicionado automaticamente.

Respostas:


171

Vá para o diretório do seu projeto

mkdir TestProject
cd TestProject

Faça deste diretório a raiz do seu projeto (isso criará um package.jsonarquivo padrão )

npm init --yes

Instale o módulo npm necessário e salve-o como uma dependência do projeto (ele aparecerá em package.json)

npm install request --save

Crie um test.jsarquivo no diretório do projeto com o código do exemplo de pacote

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.
  }
});

O diretório do seu projeto deve ser semelhante a este

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

Agora basta executar o nó dentro do diretório do seu projeto

node test.js

1
sim, esse é exatamente o exemplo que segui. e eu executo o instalador npm 10 vezes agora .. em meu projeto de teste e usando o sinalizador -g. posso ver node_modules em meu diretório de teste, mas a solicitação não está lá .. continua a me dar esse erro ..
— Sonic Soul

porque, embora eu tenha algum conflito estranho, esses são os passos certos a seguir. funcionou assim que fiz isso novamente em um novo diretório. Eu adicionei uma atualização sobre o que aconteceu comigo que provavelmente será raro para os outros
— Sonic Soul

32

Você deve simplesmente instalar request localmente em seu projeto.

Vá cdaté a pasta que contém seu arquivo js e execute

npm install request

após "npm install request", copiei meu app.js para a pasta request e tentei executar a partir daí com o mesmo resultado. e precisarei usá-lo em mais de um projeto.
— Sonic Soul de

@SonicSoul: Você está entendendo mal como os pacotes de nós funcionam. require('request')olha ./node_modules/request, e é aí que o npm installcoloca. Você deve executar a npm installpartir do diretório raiz de cada aplicativo e nunca deve tocar na node_modulespasta por conta própria.
— SLaks de

antes de correr npm install request, você deve correr npm init. Siga as instruções que criarão um package.jsonna pasta do seu projeto. Em seguida, execute o npm install -S requestque instalará o módulo de solicitação na pasta node_modules e também adicionará a solicitação ao arquivo package.json
— Noah

@SLaks significa que toda vez que instalo algum pacote, preciso entrar em sua pasta raiz e executar npm install? para todos eles?
— Drumnbass

@Drumnbass: Não. npm installInstala todas as dependências também.
— SLaks

16

Tive o mesmo problema, pra mim npm install request --save resolveu o problema. Espero que ajude.


1

Eu estava tendo o mesmo problema, aqui está como eu fiz isso funcionar ..

terminal aberto:

mkdir testExpress
cd testExpress
npm install request

ou

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

agora não use

nó app.jsou nó test.js, você terá esse problema ao fazer isso. Você também pode imprimir o problema que está sendo causado usando este comando."node -p app.js"

O comando acima para iniciar nodeJs foi descontinuado. Em vez de usar

npm start

Você deveria ver isso ..

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

Abra seu navegador da web e verifique se há localhost: 3000

Você deve ver a instalação Expressa (Bem-vindo ao Express)


1

Eu encontrei o mesmo problema ao instalá-lo globalmente, tentei instalá-lo localmente e funcionou.


1

se algum módulo que você não consegue encontrar, tente com URI estático, por exemplo:

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

Este exemplo, executado no Ubuntu Gnome 16.04 de 64 bits, node -v: v4.2.6, npm: 3.5.2 Consulte: Blog de Ben Nadel


0

ReferenceError: Não é possível encontrar a variável: requerem.

Você instalou "npm", você pode executar normalmente o script para um "localhost" "127.0.0.1".

Quando você usa o http.clientRequest () com "options" em um "npm" você precisa instalar o "RequireJS" dentro do módulo.

Um módulo é qualquer arquivo ou diretório no diretório node_modules que pode ser carregado pelo Node. Instale o "RequiereJS" para fazer funcionar o http.clientRequest (opções).


0

Tentei instalar o módulo localmente com a versão e funcionou !!

npm install request@^2.*

Obrigado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.