2
respostas

cannot find module 'express'

Boa tarde,

Estou com o seguinte problema abaixo.. parece que nao está encontrando o import do express.

PS C:\Users\arthur.kou.da.silva> docker run -p 8080:3000 -v "C:\Users\arthur.kou.da.silva\Documents\alura\docker\volume-exemplo:/var/www" -w "/var/www" node npm start                       
> volume-exemplo@1.0.0 start /var/www
> node .

internal/modules/cjs/loader.js:1083
  throw err;
  ^

Error: Cannot find module 'express'
Require stack:
- /var/www/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1080:15)
    at Function.Module._load (internal/modules/cjs/loader.js:923:27)
    at Module.require (internal/modules/cjs/loader.js:1140:19)
    at require (internal/modules/cjs/helpers.js:75:18)
    at Object.<anonymous> (/var/www/index.js:1:17)
    at Module._compile (internal/modules/cjs/loader.js:1251:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10)
    at Module.load (internal/modules/cjs/loader.js:1100:32)
    at Function.Module._load (internal/modules/cjs/loader.js:962:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/var/www/index.js' ]
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! volume-exemplo@1.0.0 start: `node .`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the volume-exemplo@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-08-23T18_10_30_420Z-debug.log
PS C:\Users\arthur.kou.da.silva>     

Alguém poderia me ajudar a resolver isso por favor?

Obrigado, Arthur

2 respostas

Parece que você está tentado iniciar a aplicação num caminho onde não foi instalado os pacotes (node_modules) ainda, verifica se o caminho onde está o site estático contém o diretório node_modules.

Olá Arthur, tudo bem? Então, como o Bruno falou o erro acontece justamente porque o arquivo index.js chama um modulo que era para está dentro da pasta node_modules porém ele não consegue encontrar essa pasta. Fiz o mesmo teste aqui no Windows usando os arquivos que o instrutor disponibilizou no curso com o seguinte comando:

docker run -p 8080:3000 -v "C:\Users\Jonilson Sousa\Desktop\volume-exemplo:/var/www" -w "/var/www" node npm start

E deu certo, consegue acessar a pagina no endereço http://localhost:8080/, então, quando apagou alguma coisa, ou apagou a pasta node_modules da pasta que fez o download? Será que seu antivírus num apagou alguma coisa da pasta, isso também pode acontecer, sugiro desativar o antivírus temporariamente, e então fazer o download e tentar novamente executar o comando. Caso o erro persista, uma solução é executar em modo desanexado (detach), e então entrar dentro do container e verificar se a pasta não existe.

Para isso você pode executar o comando da seguinte forma:

docker run -d -p 8080:3000 -v "C:\Users\arthur.kou.da.silva\Documents\alura\docker\volume-exemplo:/var/www" -w "/var/www" node npm start

E então verificar se o container está realmente em executação e qual o seu ID com o comando:

docker ps

E então usar o ID obtido anteriormente para acessar o terminal do container da seguinte forma:

docker exec -it ID_DO_CONTAINER

Então você pode executar o comando para listar arquivos (ls) e pastas dentro do container:

root@c1bd8c64ec34:/var/www# ls

E fala se a pasta node_modules é listada!

Fico aguardando retorno!