Node.js не может найти модуль 'mongodb'
Я просматриваю свой первый проект node.js. Я установил mongodb, имею файл server.js, и когда я пытаюсь запустить его, я получаю эту ошибку
module.js:340
throw err;
^
Error: Cannot find module 'mongodb'
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)
Я совершенно уверен, что у меня установлен mongodb, я новичок в unix, исходящий из фона Windows С#, но я думаю, что это путь, который не настроен должным образом?
Ответы
Ответ 1
Полученная ошибка указывает, что пакет NPM для MongoDB установлен неправильно.
Исправление зависит от того, как вы планируете использовать NPM. Диспетчер пакетов NPM имеет два разных режима работы: локальный и глобальный.
Первый (и по умолчанию) режим "локальный".
Если вы перейдете в папку с server.js
, вы увидите подпапку с именем node_modules
. Под этой папкой будет папка mongodb
. Если эта папка отсутствует, то модуль mongodb
не установлен на этом пути.
Чтобы исправить это, cd
в эту папку и введите npm install mongodb
. Когда процесс будет выполнен, вы должны иметь доступную папку node_modules/mongodb
.
Вы также можете установить пакет MongoDB глобально, используя npm install -g mongodb
. Это полезно, если вы используете множество команд командной строки node.js, но менее полезно, если вы развертываете все это.
Боковое примечание: вокруг package.json
существует эволюционирующий стандарт. package.json
- стандартизированный способ включения всех зависимостей для данного модуля. Это позволяет запускать npm update
или npm install
в корне проекта/пакета и эффективно "втягивать" все зависимости. Это значительно упрощает процесс развертывания и процесс поддержания ваших зависимостей в строке.
Ответ 2
Попробовав какое-то время, чтобы установить его без успеха (поскольку я новичок в mongo и node), мне действительно не хватало ссылку на npm. Поэтому, чтобы подвести итог, я сделал это:
- npm install mongodb -g
- cd/path/to/my/app/folder
- npm link mongodb
С этим я могу сделать это в своем файле приложения: require ('mongodb').
Вот несколько ссылок, если они вам нужны:
Ответ 3
Эта проблема была бы вызвана одной из следующих причин.
1) Вы не установили модуль mongodb.
2) Вы установили mongodb в глобальном контексте, но не связаны с текущим приложением.
Решение
1) Перейдите в верхний каталог приложения и выполните npm install mongodb, это установит модуль mongodb, и ваш проект автоматически обнаружит его.
или же
2) Выполните npm install mongodb -g, чтобы установить модуль mongo DB глобально, а затем Ttaverse в верхний каталог приложения и связать его с помощью команды npm link mongodb.
Полезные ссылки
http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/
https://npmjs.org/doc/link.html
Ответ 4
Вы можете сделать одно из двух действий, чтобы запустить: -
1) Установить mongodb глобально с помощью следующих шагов: -
а) npm install mongodb -g
b) Перейдите в каталог приложений, где находится module.js, а затем запустите
npm link mongodb
Объяснение: - Когда вы устанавливаете пакет по всему миру через npm, он загружается в глобальную папку node_module. Для меня (пользователь Mac) он находится под /usr/local/lib/ node_modules/mongodb. Мы связываем это с тем каталогом, из которого вы пытаетесь запустить module.js.
2) Другим подходом является установка mongodb локально, а не глобально через
npm install mongodb
После выполнения любого из этих действий вы увидите папку node_modules → mongodb в каталоге 'module.js', что означает, что mongodb был успешно установлен.
Ответ 5
Ошибка
jamsheed-h110m-s2ph:~/project/jamsheed/meanStack/mean$ node server.js
module.js:538
throw err;
^
Error: Cannot find module 'mongodb'
at Function.Module._resolveFilename (module.js:536:15)
at Function.Module._load (module.js:466:25)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/haseeb/project/jamsheed/meanStack/mean/server.js:3:13)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
Решено
npm install mongodb
Измените package.json = "mongodb": "^ 3.0.1", измените "mongodb": "3.0.1",
Ответ 6
Я новичок в MongoDB. После траты часов установки mongodb через npm, я наконец получил картину. Понимаете, на самом деле есть три "mongodb", с которыми вам нужно иметь дело (я использую OSX):
1.
Драйвер, используемый в NodeJS:
То есть: var mongo = require ('/usr/local/lib/node_modules/mongodb'). Или вы можете использовать ссылку "npm", как упоминалось ранее, чтобы избежать длинного пути. Команда "npm install -g mongodb" устанавливает драйвер mongodb в /usr/local/lib (это означает "-g" ). Этот парень занимал часы и часы, чтобы установить, не знаю почему, так что будьте терпеливы!
2.
Утилиты mongodb (т.е. Исполняемые команды UNIX). Вы загружаете их из http://www.mongodb.org/downloads. Он содержит команду mongod, которая позволяет вам запускать базу данных mongodb. Поэтому в моем /usr/local/bin я создал символическую ссылку, mongod, указав на /usr/local/lib/ node_modules/mongodb-osx-x86_64-2.6.7/bin/mongod, поэтому я могу выполнить mongod из любого места.
3.
База данных mongodb указана /data/db. Поэтому под /data я создал символическую ссылку, db, указав на /Users/your _user_id/Database/mongodb (или в любом месте, где вы хотите ее поместить), в котором mongodb является пустым каталогом, который вы можете создать через mkdir.
Поскольку вы установили mongodb # 2 выше, вы можете выполнить mongod в командной строке, которая создаст и запустит базу данных под mongodb # 3.
Поскольку у вас есть mongodb # 1, установленный npm, теперь вы можете потребовать его в своей программе NodeJS.
Задание выполнено!
Ответ 7
У меня та же проблема, и я решаю эти шаги.
1. Поделитесь своим проектом (cd ваш путь к проекту)
2. Запустите эту команду в командной оболочке (установите npm)
3. Запустите проект (node app.js, например)
Ответ 8
Возможно, вы пытаетесь запустить другой путь проекта. Я столкнулся с той же проблемой и получил разрешение, выполнив следующие шаги, приведенные ниже.
1.) Перейдите в каталог проекта с помощью командной оболочки "cd/project path".
2.) Теперь запустите проект.
Ответ 9
Моя проблема заключалась в том, что когда я изначально создавал файл package.json, я сделал ключ "версия" соответствующим значению "1.0.0". Когда я изменил это значение версии, чтобы отразить версию, которую я хотел использовать под своим "зависимым" ключом, я избавился от этой ошибки. Ниже приведено изображение потенциального исправления. Обратите внимание, как совпадают "версия" и "mongodb" в разделе "зависимости".
![введите описание изображения здесь]()
Ответ 10
Установите mongodb глобально с помощью следующих шагов: -
а) npm установить mongodb -g
б) Перейдите в каталог вашего приложения, где находится файл module.js, а затем запустите
npm link mongodb
Объяснение: - Когда вы устанавливаете пакет глобально через npm, он загружается в глобальную папку node_module. Для меня (для пользователей Mac) он находится в /usr/local/lib/node_modules/mongodb. Мы связываем это с тем каталогом, откуда вы пытаетесь запустить module.js.