Я получаю следующую ошибку:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
Вот мои подробности версии:
ОС: Windows 7
MongoDB: 2.6.5
Узел: 0.12.0
Я пробовал эти вещи, прежде чем я разместил проблему здесь.
Я пошел в
\node-modules\mongoose\node-modules\mongodb\node-modules\bson
папку и сделал ниже изменения в файле связывания-Gyp от'include_dirs': [ '<!(node -e "require(\'nan\')")' ]
до'include_dirs': ["<!(nodejs -p -e \"require('path').dirname(require.resolve('nan'))\")"]
Запустил эту команду
npm install -g node-gyp
Я обновил версию мангусты до 3.8.21 внутри
package.json
Ничего не работает Пожалуйста, предложите
Ответы:
Найдите в модуле npm mongodb:
Измените путь к js-версии в блоке catch:
Для того, чтобы:
Или скопируйте файл в:
Из:
источник
У меня была эта проблема сегодня (19 февраля 2016 г.), и я решил ее, просто установив последнюю версию Mongoose. Попробуйте поместить это в свой package.json:
Надеюсь, это поможет. Решил это для меня!
источник
Проблема в том, что когда вы устанавливаете mongoose через npm, он предполагает, что у вас установлен python на ваших окнах, и пытается собрать необходимые библиотеки. Поскольку у вас нет python, он пропускает этап сборки с предупреждением. Но когда вы запускаете приложение, необходимых модулей там нет, поэтому вы получаете эту ошибку.
Чтобы все сделать правильно, сначала установите python (версия 2.7) на свой компьютер по адресу : https://www.python.org/downloads/ или, если вы установили chockolatey, просто введите
choco install python2
.Затем убедитесь, что ваша переменная python установлена. Вы можете установить его в командной строке как:
(Конечно, вы должны изменить путь в соответствии с вашим местоположением Python) Затем установите node-gyp:
Теперь вы можете переустановить mongoose или любой другой модуль, вызывающий проблему:
На этот раз вы увидите несколько желтых линий вместо красных, но ошибка исчезнет.
источник
--msvs-version=2012
или в2013e
зависимости от того, что вы установили. напримерnpm install mongoose --msvs-version=2012
Я решил эту проблему, установив версию Mogoose
3.8.23
источник
Это сработало для меня. Поиск в вашей рабочей области для текста:
Вы, вероятно, найдете его внутри модулей mongose и monk.
Затем замените каждый:
с участием:
вот и все!
источник
Попробуйте ,
npm install mongoose@3.8.23
а также заменитьbson = require('../build/Release/bson');
наbson = require('../browser_build/bson');
в node_modules / bson / ext / index.jsисточник
Это сработало для меня:
Перейти к файлу (в вашем проекте):
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
и изменить:
bson = require('../build/Release/bson');
чтобы:
bson = require('bson');
Ссылка: https://github.com/mongodb/js-bson/issues/118
источник
node_modules
каталог в системе контроля версий?Короткий ответ
Установите последнюю версию mongodb.
Немного больше ответа
Убедитесь, что ваш package.json использует последнюю версию mongodb, затем удалите node_modules / mongodb и повторите установку npm. Если вы не использовали mongodb в качестве прямой зависимости, попробуйте найти, какой пакет использует mongdb. Я использовал:
Поэтому я обновил ./sails-mongo/package.json, чтобы:
Затем удалите node_modules / mongodb и снова выполните npm install. Кажется, хорошо сейчас.
Еще дольше отвечу
Мне не нравится текущий предложенный способ использования
Так как, глядя на ../browser_build/bson.js, файл с 4k + строками, который кажется также "не родной" реализацией. Так что, хотя он не будет выдавать никаких жалоб, он все еще «использует чистую версию JS», что означает снижение производительности.
Глядя на https://github.com/mongodb/js-bson/issues/145 и https://github.com/mongodb/js-bson/issues/165 , кажется, что проблема была вызвана:
Поэтому я попытался удалить весь node_modules и все еще получил ту же ошибку. И, глядя на package.json для node_modules / mongodb, его версия все еще 1.4.26, а не последняя 2.1.7.
Очевидно, мой mongodb зависит от другого установленного мной пакета: sails-mongo. Модификация package.json для sails-mongo и повторная установка npm окончательно решают проблему.
источник
Развертывание Keystone JS CMS У меня была та же ошибка, и я думаю, что самое элегантное решение это:
Установить
npm-check-updates
:В каталоге вашего ключевого сайта, где он
package.json
находится, проверьте зависимости:Затем обновите все пакеты:
И, наконец, если вы выбрали
jade
шаблоны, возможно, вам потребуетсяjade
явно установить модуль:источник
Отмеченный ответ совершенно неверный. Все, что делает, это скрывает консольный лог-журнал и ничего не делает для решения проблемы. Вы также можете закрыть глаза, и это приведет к тому же результату.
Проблема вызвана узловым гипсом и только этим. Его целью является компиляция собственных расширений для определенных модулей, таких как bson.
Если это не удается сделать это , то код будет Откат к версии JS и любезно сообщит Вам об этом через информационное сообщение:
Я предполагаю, что вопрос действительно в том, как скомпилировать собственное расширение C ++, а не просто в том, чтобы не видеть сообщение, поэтому давайте обратимся к этому.
Для того, чтобы работает node-gyp, ваш node-gyp должен быть в курсе вашего узла и компилятора C ++ (который будет отличаться в зависимости от вашей ОС). Не менее важно, чтобы ваш модуль также был актуальным.
Сначала удалите и переустановите node-gyp
Теперь вам нужно будет полностью удалить и переустановить любой модуль узла в вашем приложении (включая модули, установленные в соответствии с требованиями), которые имеют bson. Это должно позаботиться об ошибке. Вы можете найти «Release / BSON» и найти виновных.
А затем удалите и переустановите эти модули.
Проще всего переделать всю
node_modules
папку:Если у вас все еще возникают проблемы, то либо 1) ваш модуль устарел - проверьте систему отслеживания проблем в их репозитории, либо 2) у вас есть потенциальный конфликт - иногда у нас может быть локальный узел-гип, например. Вы можете запустить
node-gyp
сам и проверить версии.источник
При создании установки для
www.spotdekho.com
новойwindows10
машины я не смог выполнить команду"nodemon web.js"
из-за той же ошибкиПолучил это с помощью следующих шагов:
Это решит проблему.
PS: я использую версию Мангуста 4.8.8.
Спасибо :), надеюсь, это поможет кому-то.
источник
В моем случае, биты, которые идут с mongoose (
npm install mongoose
), имеют рабочую версиюmongodb
пакета в своейnode_modules
папке.Следующие шаги спасли меня от устранения проблемы:
npm install mongoose
node_modules\mongoose\node_modules\mongodb
в мою корневуюnode_modules
папку (перезаписать любую версию, которая пришлаnpm install mongodb
)Failed to load c++ bson extension...
ошибку (или изменить код, чтобы молчать по этому вопросу)источник
Когда я получал подобные ошибки, я обновлялся с узла v0.10 до узла v4.xx. Мне нужно было установить более новую версию gcc (я думаю, что у меня был gcc v4.4.x или что-то в этом роде). Я обновил до gcc 4.7.2 и после этого все заработало.
источник
У меня тоже была такая же проблема с bson.
пробовать новую версию мангуста
решил проблему.
Массимо.
источник
Запустите эту команду, чтобы удалить mongoose
npm uninstall --save mongoose
- после этого переустановите его, но на этот разnpm
автоматически установит последнюю версию mongoose run.npm install --save mongoose
Это сработало для меня.источник
К сожалению, все приведенные выше ответы только наполовину. Потребовалось много времени, чтобы понять это.
Установка Mongoose bson через npm выдает предупреждение и вызывает ошибку ...
Это работает как магия!
источник
Если вы используете Windows 8.1, вы можете убедиться, что вы устанавливаете свои модули npm с правильным компилятором Visual Studio.
У меня установлена Visual Studio 2012, эта команда работает для меня. (после удаления директории node_modules)
npm install --msvs_version = 2012
По какой-то причине, node-gyp пытается использовать неверную версию компилятора Visual Studio. Я также заметил, что команда «npm install» выводила предупреждения о не зависящих от узла зависимостях при установке модулей mongodb и mongoose.
После использования правильного msvs_version, предупреждения установки npm исчезли, а также предупреждение консоли при запуске моего приложения nodejs.
Вы также можете убедиться, что у вас установлена правильная версия Python 2.7.X, а не Python 3.0.X.
Вам также необходимо убедиться, что python находится в вашем пути env.
источник
npm install --msvs_version=2012
Единственное, что мне помогает в Windows 7 (x64): https://stackoverflow.com/a/29714359/2670121
Переустановите узел и python с версиями x32.
Я провел много времени с этой ошибкой (не удалось загрузить расширение b ++ для c ++) и, наконец, когда я установил модуль
node-gyp
(для встроенных дополнений сборки) и даже установил Windows SDK с Visual Studio - nodejs не распознал собранный модуль bson.node как модуль. После переустановки проблема исчезла.Опять же, что означает эта ошибка?
На самом деле, это даже не ошибка. Вы все еще можете использовать мангуст. Но в этом случае вместо быстрой нативной реализации модуля bson вы получаете js-реализацию, которая медленнее. Я видел много советов, таких как: «редактировать путь глубоко внутри node_modules ...» - что совершенно бесполезно, потому что это не решает проблему, а просто отключает сообщения об ошибках.
источник
Попробуйте это
npm install bson
иnpm update
источник
Вы никогда не должны изменять файлы в папке библиотеки NODE_MODULES.
Эти файлы являются результатом
npm install
команды.По сути, я думаю, что для пользователей Windows - правильный путь - это использовать VM. Это то, что я делаю, когда я работаю из дома.
Все, что тебе нужно:
for CentOS: yum install gcc gcc-c++ make openssl-devel
for Debian/Ubuntu: apt-get install build-essential
а затем
npm install
или, если вы уже сделали это -npm update
источник
Лучшим решением для меня было обновление с node-mongodb 1.x до 2.x.
источник
Я понимаю, что этой теме более 1 года, но она мне помогла, хотя и с другим модулем.
Я установил mongoose-post-findv0.0.2 и эта проблема началась. Чтобы исправить это, я использовал предложения и перешел в \ node_modules \ mongoose-post-find \ node_modules \ bson \ ext и открыл файл index.js.
Файл начинается с блока try catch, требующего правильной версии bson
это исправленная версия. Происходило то, что он пытался загрузить bson из ../build/Release/bson, не смог его найти и попал в ловушку. Попытка загрузить bson снова из ../build/Release/bson и, конечно, не удалась. Поэтому я изменяю путь в улове, чтобы посмотреть в ../browser_build/bson. Это решило ошибку.
Я выкладываю это для полноты.
источник
У меня была такая же проблема после обновления версии Ubuntu до 16.04. Я решил таким образом, надеюсь, это поможет.
источник
В нашем случае причина, по которой версия bson для c ++ не была найдена, заключалась в том, что мы работали за корпоративным прокси-сервером, и что-то в процессе сборки BSON должно быть доступно для извлечения файлов. Когда мы посмотрели в node_modules / bson / builderror.log, мы увидели такую ошибку:
gyp WARN install got an error, rolling back install gyp ERR! configure error gyp ERR! stack Error: connect ECONNREFUSED gyp ERR! stack at errnoException (net.js:904:11) gyp ERR! stack at Object.afterConnect [as oncomplete] (net.js:895:19)
Который предположил, что прокси может быть проблемой. Установка переменных среды http_proxy и https_proxy решила эту проблему.
Извините за пробуждение комментариев по этому поводу, но я хотел опубликовать это для всех, кто столкнется с этим в будущем, так как эта тема очень помогла в решении нашей проблемы.
источник
Пробовал npm установить mongoose --msvs_version = 2012, если у вас установлено несколько Visual, у меня это сработало
источник
Первая копия
bson.js
кода сbrowser_build folder
второй создать новый файл
bson.js
и вставить кодтретье сохранить новый файл рядом с в
index.js
.источник
Я работаю с ОС Windows 8.1 и у меня была такая же проблема. Источником проблемы была версия Python. Я обнаружил проблему с источником, просмотрите файл ... \ node_modules \ mongodb \ node_modules \ mongodb-core \ node_modules \ kerberos \ builderror.log.
Я установил правильную версию Python (2.7.9 для 64 бит), и это решило мою проблему.
Примечание: установленная версия python должна быть равна или больше, чем 2.7.5 и меньше, чем 3.0.0.
источник
Я пытался,
bson = require('../browser_build/bson');
но в итоге столкнулся с другой ошибкойНаконец, я исправил эту проблему просто
npm update
, это исправит модуль bson в mongoose.источник
Итак, у меня та же проблема, и это происходит, тогда указанный URL-адрес mongoDB не существует. Итак, чтобы это исправить, вам нужно перейти в папку ".. \ server \ config \ environment" и отредактировать в файле "development.js" ссылку на mongoDB.
Пример:
Итак, замените это "uri: 'mongodb: // localhost / test2-dev'" на какой-нибудь реальный путь к вашей базе данных mongoDB.
Буду рад, если мой пост кому-нибудь поможет ...
источник
найти в модуле npm mongodb ..node_modules \ mongodb \ node_modules \ bson \ ext \ index.js
и изменить путь к версии js в блоке catch
в
bson = require('../browser_build/bson');
источник