Pregunta

Estoy recibiendo un error al intentar usar cualquier módulo global, Exemple:

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)

Instalé el comando express:

npm install -g express

mi app.js:

var express = require('express');

y ejecutelo con Windows PowerShell o Nede.js Preguntar a Windows:

node app.js

No sé realmente lo que está equivocado, leí algo sobre las variables de medio ambiente en Windows, ¿puede ser esto?

Resuelto / actualizado

El problema fue: Las variables de entorno de Windows no estaban configuradas para la carpeta NPM. Busque su carpeta NPM y agregue la ruta en las variables de entorno.

¿Fue útil?

Solución

Debe instalar Express localmente:

npm install express

Luego lo requiere como lo hiciste:

var express = require('express')

Otros consejos

SOLO PARA CITIR DE AQUÍ:

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

  • Instalelo localmente si va a requerir ().
  • Instalelo globalmente si va a ejecutarlo en la línea de comandos.
  • Si necesita ambos, luego instálelo en ambos lugares, ni use npm link .

Estaba obteniendo el mismo error en Windows 7 / X64 y agregar seguimiento en la variable de entorno resolvió el problema:

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

* Reemplace [Nombre de usuario] con su nombre de usuario del sistema real

Estoy trabajando en Linux, pero cuando necesito expreso, lo estoy haciendo con un camino relativo a donde está instalado y funciona bien:

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

Estoy seguro de que lo mismo funcionaría con una ruta de Windows también.Si desea que sea más explícito y declare una ruta absoluta, esa sería la opción nuclear para asegurarse de que siempre sabe exactamente dónde se está cargando su módulo, independientemente de dónde se ejecuten sus scripts.

Si aún tiene un problema después de usar una ruta explícita, no sé cuál podría ser el problema...

Otra opción será ejecutar la instalación de NPM --Save Express

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top