2014-01-10 5 views
18

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

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 

Моего app.js:

var express = require('express'); 

И запустите его с помощью окна командной строки powershell или командной строки node.js:

node app.js 

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

Решенный/Update

Проблема заключалась в том: переменные среды Windows, не была настроена на папку НПМ. Найдите свою папку npm и добавьте путь в переменные среды.

+1

Это происходит и со мной, и я работаю в Linux-боксе. Вероятно, установка во всем мире поможет вам запустить 'express' из любой точки по командной строке. Если вы запустите 'npm install' в каталоге проектов и будете« выражать »в своих зависимостях, он будет работать. – hgoebl

+0

Да, но я намерен сделать набор модулей, которые я всегда использую в различных приложениях, тогда было бы неплохо, если бы вы установили глобально. –

+1

Если вы хотите сэкономить место на своем диске, вы можете создать ссылку на глобально установленный модуль. – hgoebl

ответ

14

Вы должны установить Экспресс локально:

npm install express 

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

var express = require('express') 
+6

У меня возникли проблемы с тем, что в этом ответе говорится, что это не повторение того, что говорит OP в вопросе, который он уже сделал. –

+5

Я также смущен, почему это «принятый» ответ, когда ОП четко заявил, что он сделал что-то другое и решил проблему. –

+1

Установить локально ГДЕ? Ex./Главная/пользователь/проект? –

3

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

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

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

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

11

Просто процитировать здесь:

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

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

Предпочитаете команду 1) 'npm install-local somenodemodule' и 2) другую команду' npm install-globally-for-command-line somenodemodule' или что-то в этих терминах? Только личное предпочтение, но мне нравится, что он долго читается явным и сочным! –

+0

Это полностью выяснилось, что я имел. Я только что установил библиотеку для использования с 'require', которую я имел в виду, чтобы в целом быстро использовать мою систему, без какого-либо конкретного сценария или проекта. Я установил библиотеку по всему миру, а затем связал ее локально в своем рабочем каталоге для быстрого использования. Я «мог бы» понять их парадигму, но в основном хотел бы все еще требовать ее во всем мире и легко. – Pysis

11

я получаю ту же ошибку на Windows7/x64 и добавление следующих в переменной окружения Решена проблема:

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

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

+3

альтернатива> set NODE_PATH =% USERPROFILE% \ AppData \ Роуминг \ npm \ node_modules –

+3

Вторая альтернатива: установите NODE_PATH =% AppData% \ npm \ node_modules – Shivan

Смежные вопросы