Общий нуб здесь. Я пытался настроить пример приложения узла, но при каждом запуске появляется следующая ошибка:
приложение узла
Failed to load c++ bson extension, using pure JS version
events.js:72
throw er; // Unhandled 'error' event
^
Error: failed to connect to [#$%67890 :27017]
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:553:74)
at EventEmitter.emit (events.js:106:17)
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:830:16
at process._tickCallback (node.js:415:13)
failed to connect to
, что я думаю, чтоbson
сообщение может быть не связанным и на самом деле не имеет значения. Вы уверены, что ваши настройки подключения Mongo верны?Ответы:
Я полагаю, у вас не было инструментов make, доступных при установке библиотеки mongodb. Я предлагаю вам сделать
xcode-select --install
(на Mac) илиsudo apt-get install gcc make build-essential
(на Ubuntu)и беги
ИЛИ просто обновление npm на основе комментария @tobias (после установки build-essential)
источник
mongoskin
модуля.sudo apt-get install gcc make build-essential
совет - один из лучших советов по разработке Node.js + Ubuntu, которые я когда-либо видел. Это абсолютно изменит правила игры, если вы привыкли разрабатывать веб-приложения и просто разрабатывать с Node.js в Ubuntu.gcc
иmake
вместе сbuild-essential
? Последнее зависит от двух других, поэтому они все равно будут установлены ( packages.ubuntu.com/trusty/build-essential ). Делатьsudo apt-get install build-essential
должно быть достаточно.Я только что решил это.
Когда вы устанавливаете модуль mongoose с помощью npm, в его папке нет встроенного модуля bson. В файле
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
измените строкув
и затем установите модуль bson, используя npm.
источник
Я разобрал проблему получения «Не удалось загрузить расширение b ++ c ++» на raspbian (debian для raspberry) следующим образом:
а потом
источник
npm update
, даже не установив ничего другого.Я не смог решить это
до нынешнего момента. Прежде всего, вы должны иметь системные пакеты, упомянутые Pradeep Mahdevu. Это:
или
Тогда я установил узел-гип
как сказал datadracer, но предложенное им обновление npm рискованно. Обновляются все модули, которые могут быть опасны (иногда API меняется между версиями).
Я предлагаю пойти в каталог node_modules / mongodb / node_modules / bson и оттуда использовать
Это решило проблему для меня.
источник
apt-get install python
), а затем изнутриnode_modules/mongoose/node_modules/mongodb/node_modules/bson/
запуститьmake
. Это созданоRelease/bson.node
.Распространенной проблемой является то, что node-gyp требует Python 2.x, и если ваша система
python
указывает на 3.x, она не сможет скомпилироватьсяbson
без предупреждения. Вы можете исправить это, установивpython
глобальный ключ в вашей конфигурации npm, который указывает на исполняемый файл 2.x в вашей системе. Например, в Arch Linux:источник
На WIN 8.1
Кажется, я использовал неправильную версию мангуста в моем
package.json
файле.Я удалил строку
"mongoose" : "^3.8.15"
изpackage.json
.CLI:
Теперь он говорит , что
"mongoose": "^4.0.6"
вpackage.json
и ошибка у меня была больше нет.источник
Я использую Ubuntu 14.04, и чтобы исправить это, мне нужно было создать символическую ссылку для узла, чтобы он указывал на nodejs, как описано здесь:
nodejs против узла в Ubuntu 12.04
Как только я сделал это, я перезапустил эти команды:
источник
Так что в моем случае я сначала попытался проверить в этом каталоге / node_modules / mongoose / node_modules / , просто чтобы убедиться, что у меня есть bson модуль . Я понял, что у меня его не было в первую очередь, потом я просто бегу
а потом
Все отсортировано. Испытано и протестировано в Ubuntu.
источник
make
в/devel/node_modules/bson/
npm install bson
просто хотел сказать, у меня тоже была ошибка
Но ни с одной из других ошибок. Я перепробовал все и оказалось, что драйверы mongodb, которые я указывал в файле package.json, были несовместимы с моей версией MongoDB. Я изменил его на мою последнюю версию (1.4.34), и это сработало !!!
источник
sudo npm rebuild
было то, что исправило это для меня.источник
Я, наконец, исправил эту ошибку, обновив версию зависимости mongodb до ~ 2.0.36 в
package.json
.источник
К сожалению, все приведенные выше ответы только наполовину. Потребовалось много времени, чтобы понять это.
Установка Mongoose bson через npm выдает предупреждение и вызывает ошибку ...
Это работает как магия!
источник
$ node gyp rebuild module.js:341 throw err; ^ Error: Cannot find module '/private/tmp/js-bson/gyp' at Function.Module._resolveFilename (module.js:339:15) at Function.Module._load (module.js:290:25) at Function.Module.runMain (module.js:447:10) at startup (node.js:140:18) at node.js:1001:3
Для меня достаточно выполнить эти команды в моем каталоге API:
источник
Я только что побежал:
и
и все стало хорошо.
источник
Сообщение о расширении bson - это просто предупреждение , я все время получаю его в своем приложении nodejs.
Вещи, чтобы проверить:
источник
Я исправил эту проблему на CentOS
источник
Я исправил это, изменив строку 10 из:
из:
чтобы:
источник
Я также получил эту проблему, и это заставило мои сессии не работать. Но и не сломать ...
Я использовал мангуста.
У меня было это:
Очень просто. Но требование всегда оставалось пустым.
Сделал трюк. Обратите внимание, что в вашем package.json нет mongodb! Просто мангуст и коннект-монго.
источник
Вот как я исправил проблему в Ubuntu:
ln -s /usr/bin/nodejs /usr/bin/node
npm install node-gyp
cd node_modules/mongodb/node_modules/bson
node-gyp rebuild
Вдохновленный ответом @mbochynski, но сначала мне нужно было создать символическую ссылку, иначе восстановление не удалось.
источник
у меня были такие же проблемы, я пробовал так много вариантов, но в последней
npm intall
в моей папке приложения работал.источник
У меня была эта проблема, потому что я включил папку node_modules в мой репозиторий Git. Когда я перестроил node_modules в другой системе, это сработало. Один из них работал под управлением Linux, другой - OS X. Возможно, у них были и другие процессорные архитектуры.
источник
У меня была такая же проблема на моем экземпляре EC2. Я думаю, что первоначальная причина была в том, что у меня был запущен экземпляр Node, когда я установил Mongo. Я остановил службу Node, а затем побежал
внутри папки верхнего уровня моего проекта узла. Это решило проблему, и все было как новый
источник
Я пытался запустить узел на общей папке виртуальной машины (бродяги). Это была проблема. Мой хост-компьютер - Windows, установленный узел на Windows и работал как шарм. Поэтому, если вы используете виртуальную машину, просто попробуйте запустить сервер узла на хост-машине.
источник
У меня просто была такая же проблема, и буквально у меня ничего не получалось. Ошибка показала
kerberos
, вызывает проблему, и это было одной изmongoose
зависимостей. Поскольку я работаю в Ubuntu, я подумал, что могут быть проблемы с разрешениями где-то между глобально установленными пакетами -/usr/lib/node_modules
черезsudo
и теми, которые находятся в пользовательском пространстве.Я установил
mongoose
глобально -sudo
конечно, и все стало работать как положено.PS
kerberos
Пакет теперь также установлен глобально рядомmongoose
, однако я не могу вспомнить, сделал ли я это преднамеренно - когда я пытался решить проблему, или это было с самого начала.источник
Я работаю на Docker с CentOS 7, и столкнулся с той же проблемой.
осмотревшись и сделав несколько попыток, я исправил эту проблему, установив mongodb и mongodb-server
Я не думаю, что это лучший способ произвести минимальный контейнер. но я могу ограничить сферу в следующих пакетах
источник
Для Windows 7.1 эти указания помогли мне исправить мою среду сборки:
https://github.com/mongodb/js-bson/issues/58#issuecomment-68217275
http://christiankvalheim.com/post/diagnose_installation_problems/
источник
Я смог решить, удалив и переустановив пакет monk. Первоначальная установка, по-видимому, имела поврежденную зависимость mongodb / bson.
источник
Followint @ user1548357 Я решил изменить сам файл модуля. Чтобы избежать проблем, указанных в действительных комментариях ниже, я включил свои изменения в скрипт postinstall, чтобы я мог установить его, забыть и быть уверенным, что он будет работать после установки моих модулей.
и скрипт такой:
источник
легко избавиться от проблемы, просто добавив эту строку и попробуйте и поймать путь к блоку:
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
Вот и все!!!
источник
Единственное, что мне помогает в Windows 7 (x64): https://stackoverflow.com/a/29714359/2670121
Переустановите узел и python с версиями x32.
Я провел много времени с этой ошибкой:
и наконец, когда я установил модуль
node-gyp
(для создания нативных надстроек) и даже установил Windows SDK с visual studio - nodejs не распознал собранный модульbson.node
как модуль. После переустановки проблема исчезла.Опять же, что означает эта ошибка?
На самом деле, это даже не ошибка. Вы все еще можете использовать мангуст. Но в этом случае вместо быстрой нативной реализации
bson
модуля вы получаетеjs-realization
, что медленнее.Я видел много советов, таких как: «редактировать путь глубоко внутри node_modules ...» - что совершенно бесполезно, потому что это не решает проблему, а просто отключает сообщения об ошибках.
источник