node.js, Erro: Não foi possível encontrar o módulo 'express'


125

Eu sou novo no Node.js, tente aprender o Express para criar meu primeiro aplicativo da Web. Fiquei preso no meu primeiro código de exemplo e preciso de ajuda para executá-lo. Antes de postar essa pergunta, pesquisei no estouro de pilha, encontrei algumas perguntas semelhantes, mas ainda não consegui corrigi-lo.

Erro: Não foi possível encontrar o módulo 'express'

Estou usando o mac os 10.8.2 . Eu tenho o Node.js instalado usando nvm.

caminho node.js: 0.8.20 para o nó: /Users/feelexit/nvm/v0.8.20/bin/node para expressar: / Users / feelexit / nvm / node_modules / express

aqui está o meu código de exemplo: esse arquivo localiza em:

/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);

quando tento executar este comando node index.js

Recebo a seguinte mensagem de erro, por favor me ajude a corrigi-lo.

Obrigado.

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$ 

Atualize para responder à pergunta de 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


30
Você npm install
— digitou

1
Você tem certeza de que a biblioteca expressa está na sua pasta "node_modules"? Você também pode tentar mover o arquivo index.js para cima em um diretório para "/ Users / feelexit / WebstormProjects / learnnode /" e deixar a pasta node_modules em paz.
— Padrão

1
Por favor, poste seu package.jsonarquivo. Isso ajudará na depuração do problema.
— Akhil Raina

@chovy, eu uso o npm install express para instalar o express. o que apenas "npm install" faz?
— qinking126

Respostas:


157

Diz

 Cannot find module 'express'

Você tem o Express instalado? Caso contrário, execute-o.

 npm install express

E execute seu programa novamente.


1
Isso não resolve o problema no meu caso. npm install expressmostra esse erro npm ERR! Error: UNKNOWN, symlink '../express/bin/express'. Parece ser uma questão mais profunda.
— Sliq # 15/13

Use sudo se você não tiver corrigido suas permissões de diretório para o npm. De qualquer forma, "sudo npm install" é uma opção melhor.
— Gaurav Gupta

Os links simbólicos costumam ocorrer, se você instalou as coisas globalmente e, sim, o link simbólico foi interrompido. Tente npm linkrecriar a respectiva ligação ...
— Frank Nocke

@Sliq Eu tentei com sua solução, mas não consigo resolver meu problema, você pode me ajudar?
— VJyV 10/10

Não esqueça "E execute seu programa novamente." No meu caso, tive que reiniciar o processo no meu process manager. Não foi reiniciado por si só.
— Tadej

42

Depois de se expressar no seu terminal, faça

 npm install

Para instalar todas as dependências.

Em seguida, você pode executar o aplicativo do nó para executar o servidor.


7
Você deve salientar que isso requer um arquivo de lista de pacotes, por exemplo, .json. E nem sempre é esse o caso.
— Pogrindis 7/11

@VjyV no mesmo diretório em que seu arquivo de nó .js. Mas ele deve ter o arquivo package.json no diretório para poder instalar as dependências necessárias.
— Saurabh Rana

34

Verifique se você instalou o expressmódulo. Caso contrário, use este comando:

npm install express

e se seu node_modulesdiretório estiver em outro local, defina a NODE_PATHvariável de ambiente:

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

12
Esta é a resposta certa para todos que postarem essas CTRL+C / CTRL+V npm installrespostas: você realmente acha que alguém tentaria executar algo sem verificar se o problema foi instalado primeiro? Sério ...
— Claudio Holanda

3
Apenas adicionando um pequeno detalhe: você precisa executar o comando install express no diretório do seu aplicativo e não na pasta de instalação do Node.js. ou na pasta npm no AppData. Porque esse foi o erro que cometi, porque pensei que era algum tipo de complemento do SDK.
— Alex

28

 npm install --save express   
Isso funcionou para mim, basta executar a instalação do express.js novamente


11

A instalação do npm a partir do diretório do aplicativo corrigirá o problema, pois instalará tudo o que for necessário


5

Desenterrando um encadeamento antigo aqui, MAS Eu tive esse mesmo erro e resolvi navegando para o diretório em que meu NodeApp reside e em execução npm install -d


Não sei por que ou como isso é importante, mas isso o instala em seus devdependencies: docs.npmjs.com/cli/install
— Guy Lowe

1
@GuyLowe -dé depurado para npm, -Dé dev dependências.
— John Pavek

4

A menos que você configure Node_PATH , a única outra opção é instalar o express no diretório do aplicativo, como npm install express --save. O Express já pode estar instalado, mas nodenão o encontra por algum motivo


Este funcionou para mim, é melhor executar o comando install no mesmo diretório que os arquivos .js. Além disso, você pode executar o comando "npm init" para criar o arquivo package.json para evitar problemas adicionais.
— emarshah

3

Você tem seu módulo expresso localizado em um diretório diferente do seu projeto. Esse é provavelmente o problema, já que você está tentando require()localmente. Tente mover o módulo express de / Users / feelexit / nvm / node_modules / express para / Users / feelexit / WebstormProjects / learnnode / node_modules / express . Essas informações podem fornecer mais detalhes sobre as estruturas de arquivos node_module.


2

se o seu arquivo principal está localizado /Users/feelexit/WebstormProjects/learnnode/node_modules/index.js, o express precisa estar localizado, /Users/feelexit/WebstormProjects/learnnode/node_modules/node_modulespois o nó sempre procura por módulos ./node_modules(e sua pasta interna) quando o caminho não começa com ./ou /( mais informações aqui )

Eu acho que você perdeu colocou seu arquivo principal na pasta do módulo


2

para esse cenário, execute o comando npm install express usando o prompt do cmd para a respectiva pasta na qual você deseja executar o programa. Exemplo: desejo executar o programa express module server.js em F: \ nodeSample. Portanto, execute "npm install express" nessa pasta específica e execute server.js


1

Em casos raros, o cache npm pode ficar corrompido. Para mim, o que funcionou foi:

npm cache clean --force

Geralmente, o gerenciador de pacotes detecta a corrupção e busca por conta própria, de modo que isso geralmente não é necessário. No entanto, no meu caso, o Windows 10 travou algumas vezes e suspeito que isso possa ter ocorrido durante uma operação de busca. Espero que ajude alguém!

Mais informações: https://docs.npmjs.com/cli/cache


1

Me deparei com um problema semelhante e, no final, era questão de algumas dependências antigas que estavam atrapalhando meu servidor Heroku.

Enquanto estiver na pasta do meu projeto, executei:

npm uninstall
npm install

Espero que ajude


0

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

Isso acontece devido à falta de permissões ou arquivos desvinculados enquanto o npm estava funcionando.

Ou seja, a execução npmcomo esse usuário não possui direitos suficientes para ler / gravar em um arquivo, neste caso, package.json.

tente adicionar sudoantes de todo o comando - ele deve resolver.

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

Senha seria sua senha de administrador do seu mac.

-gO flag instalará este módulo (express) no contexto global do nó - o que significa que o nó deve / deve reconhecer o expressmódulo a partir de qualquer arquivo js sem precisar fornecer um caminho completo para o módulo em uso.

Espero que isto ajude!!


0

Eu tive o mesmo problema. Meu problema foi que eu tenho que mudar para o diretório do projeto Node.js. na linha de comando antes de instalar o express.

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

0

Suponho que este seja um curso do curso de Desenvolvimento Web de Colt Steele ... Eu estava procurando a mesma resposta do motivo pelo qual também acabei com esse erro .. Colt não diz isso, mas você pega a pasta node_module e move na nova pasta em que você está trabalhando ... foi o que funcionou para mim.


0

Execute o npm install express body-parser cookie-parser multer --savecomando no mesmo diretório com o arquivo nodejs do código-fonte para resolver esse problema. P / s: verifique seu diretório após executar o comando para entender mais!


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)

Às vezes, a versão não corresponde ao pacote.json Corrigido o problema verificando o pacote.json e use os seguintes comandos: npm install body-parser@1.13.2 que ele resolveu para mim.


0

Você tentou

npm install

Se você está procurando especificamente apenas expressar

npm install --save express
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.