Вопрос

Я получаю ошибку при попытке использовать любой глобальный модуль, экзэмп:

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

Я установил команду экспресс:

npm install -g express
.

Мое приложение.js:

var express = require('express');
.

и запустить его с помощью командной строки Windows PowerShell или Node.js Windows:

node app.js
.

Не совсем знают, что идет не так, я что-то прочитал о переменных средах в Windows, может ли это быть?

разрешено / Обновление

Проблема была: переменные среды Windows не были настроены на папку NPM. Ищите папку NPM и добавьте путь в переменные среды.

Это было полезно?

Решение

Вы должны установить Express локально:

npm install express
.

Тогда требую, как вы сделали:

var express = require('express')
.

Другие советы

Просто чтобы цитировать отсюда:

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

    .
  • Установите его локально , если вам потребуется () это.
  • Установите его глобально , если вы собираетесь запустить его в командной строке.
  • Если вам нужна оба, то установите его в обоих местах, либо используйте NPM ссылку .

Я получал одинаковую ошибку в Windows 7 / X64, и добавление следующего в переменной среды разрешена проблема:

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

* Замените [Имя пользователя] с вашим именем пользователя фактической системы

Я работаю в Linux, но когда мне нужен экспресс, я делаю это с относительным путем к тому, где он установлен, и он работает нормально:

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

Я уверен, что то же самое будет работать с пути Windows.Если вы хотите быть более явным и объявить абсолютный путь, это будет ядерный вариант, чтобы убедиться, что вы всегда знаете точно, где ваш модуль загружен независимо от того, откуда запускаются ваши сценарии.

Если у вас все еще есть проблема после использования явного пути, я не знаю, что может быть проблема.ОтказОтказ

Другой вариант будет запущен NPM Установить --save Express

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top