Ошибка Node.js Ошибка: не удается найти модуль 'mongoose' - PullRequest
27 голосов
/ 24 декабря 2011
C:\Users\Nick\Desktop\turntablefm\Bots\Super Bot>node bot.js

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'mongoose'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (C:\Users\Nick\Desktop\turntablefm\Bots\Super Bot\db.j
s:1:78)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Module.require (module.js:357:17)

Я уже установил его с помощью npm install и попытался переустановить, но это не помогло?

Ответы [ 13 ]

42 голосов
/ 23 апреля 2012

при попытке установки с помощью этой команды:

npm install mongoose

не используйте ключ -g.

Кстати: я запустил командную строку в режиме администратора.

http://prazjain.wordpress.com/2012/04/24/node-js-error-error-cannot-find-module-xyz/

12 голосов
/ 18 сентября 2016

Чтобы запустить его, вы можете сделать одно из двух: -

1) Установить мангуст глобально с помощью следующих шагов: -

а) npm install mongoose -g

b) Перейдите в каталог вашего приложения, где расположен файл bot.js, и запустите

npm link mongoose

Объяснение: - Когда вы устанавливаете пакет глобально через npm, он загружается в глобальную папку node_module. Для меня (для пользователей Mac) он находится в папке / usr / local / lib / node_modules / mongoose . Мы связываем это с тем каталогом, откуда вы пытаетесь запустить module.js.

2) Другой подход заключается в установке мангуста локально, а не глобально через

npm install mongoose

После выполнения любого из этих действий вы увидите папку node_modules -> mongoose в каталоге 'bot.js', что означает, что mongoose был успешно установлен.

Теперь запустите узел bot.js, он будет работать.

7 голосов
/ 25 января 2016

Установка с опцией --save:

npm install mongoose --save

Это добавляет мангуста к package.json, который Heroku использует для создания вашего приложения.

6 голосов
/ 08 октября 2013

Вы должны вызвать в командной строке

npm install mongoose

не забудьте вызвать эту команду из корневого пути вашего проекта

5 голосов
/ 05 июня 2016
npm install mongoose

это будет работать, и если все будет в порядке, вы получите сообщение в своем терминале

mongoose@4.4.19 node_modules/mongoose
├── sliced@1.0.1
├── hooks-fixed@1.1.0
├── regexp-clone@0.0.1
├── mpromise@0.5.5
├── muri@1.1.0
├── kareem@1.0.1
├── mpath@0.2.1
├── bson@0.4.23
├── mquery@1.10.0 (sliced@0.0.5, debug@2.2.0, bluebird@2.10.2)
└── mongodb@2.1.18 (readable-stream@1.0.31, es6-promise@3.0.2, mongodb-core@1.3.18)
2 голосов
/ 23 апреля 2012

Я получил ту же проблему на моем Mac, выполнил поиск в центре внимания и обнаружил, что mongoose установлен в / usr / local / node_modules (когда я запускал 'npm install mongoose').Перемещение папки mongoose в ~ (home) node_modules, где предполагается, что npm фактически установит исправленную мою проблему.

1 голос
/ 19 июня 2016

Если вы уже установили mongoose глобально (npm install -g mongoose), выполните

% npm link mongoose

в каталоге проекта.Это сработало для меня.

1 голос
/ 24 января 2014

npm install создает "node_modules" в pwd (текущий рабочий каталог)

по мере роста вашего приложения, растет количество необходимых модулей и лучший подход заключается в поддержке package.json (ссылка: https://stackoverflow.com/a/14226133/832147), а затем просто введите «npm install» вместо установки каждой из них.

В качестве расширения при развертывании вашего приложения на платформах, таких как Heroku, вы можете игнорировать (git ignore) ваш огромный каталог node_modules вашего проекта.,Heroku устанавливает ваши зависимые модули, читая ваш package.json

. Этот подход заставляет нас создавать одинаковые необходимые модули узлов для каждого из наших проектов, основанных на узлах, но это нормально, поскольку нам нужно только выполнить команду «npm install»один раз за проект

0 голосов
/ 16 января 2019

Просто откройте папку вашего проекта в командной строке и выполните команду ниже, чтобы можно было добавить зависимость mongoose в файл package.json.Я на 100% уверен, что вы больше не получите такую ​​ошибку.

$ sudo npm install --save mongoose

0 голосов
/ 04 июня 2015

Из документа / блога

В общем, практическое правило:

Если вы устанавливаете что-то, что вы хотите использовать вВаша программа, используя require ('what'), затем устанавливает ее локально, в корне вашего проекта.

Если вы устанавливаете что-то, что хотите использовать в своей оболочке, в командной строке или что-то еще, установите его глобально, чтобы его двоичные файлы попали в переменную среды PATH.

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