Pergunta

Estou recebendo um erro ao tentar usar qualquer módulo global, exemplo:

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> (C:\BitNami\wappstack\...\test\app.js)
    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)

Eu instalei o comando expresso:

npm install -g express

Meu aplicativo.js:

var express = require('express');

E execute-o usando o Windows PowerShell ou o prompt de comando node.js:

node app.js

realmente não sei o que está acontecendo de errado, li algo sobre variáveis ​​​​de ambiente no Windows, pode ser isso?

Resolvido/Atualização

O problema era:As variáveis ​​de ambiente do Windows não foram configuradas para a pasta npm.Procure sua pasta npm e adicione o caminho nas variáveis ​​de ambiente.

Foi útil?

Solução

Você deve instalar o Express localmente:

npm install express

Em seguida, exija como você fez:

var express = require('express')

Outras dicas

Apenas para citar aqui:

https://www.npmjs.org/doc/files/npm-folders.html

  • Instale-o localmente se você vai exigir() isso.
  • Instale-o globalmente se você for executá-lo na linha de comando.
  • Se você precisar de ambos, instale-os em ambos os lugares ou use link npm.

Eu estava recebendo o mesmo erro no Windows7/x64 e adicionar o seguinte na variável de ambiente resolveu o problema:

NODE_PATH=C:\Users\[USERNAME]\AppData\Roaming\npm\node_modules

*Substitua [NOME DE USUÁRIO] pelo seu nome de usuário real do sistema

Estou trabalhando em Linux, mas quando preciso do express, estou fazendo isso com um caminho relativo para onde ele está instalado e funciona bem:

var express = require('./public/node_modules/express');

Tenho certeza de que a mesma coisa funcionaria com um caminho do Windows também.Se você quiser ser mais explícito e declarar um caminho absoluto, essa seria a opção nuclear para garantir que você sempre saiba exatamente de onde seu módulo está sendo carregado, independentemente de onde seus scripts estão sendo executados.

Se você ainda tiver problemas depois de usar um caminho explícito, não sei qual pode ser o problema...

outra opção será executar npm install --save express

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top