Подтвердить что ты не робот

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 С#, но я думаю, что это путь, который не настроен должным образом?

4b9b3361

Ответ 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.