Mongoose: js-bson: Gagal memuat ekstensi c++ bson, menggunakan versi JS murni

Dibuat pada 7 Sep 2014  Β·  115Komentar  Β·  Sumber: Automattic/mongoose

Saya mengklik Fork , mengkloning repo dan saya melampirkan modul ini ke proyek saya. Saya mendapatkan kesalahan ini

js-bson: Failed to load c++ bson extension, using pure JS version

nodejs v0.11.13 , terbaru osx . Tampaknya masalahnya ada pada modul mongodb (berfungsi dengan bson 0.2.15).

Komentar yang paling membantu

Saat menggunakan dengan Keystone, inilah yang berhasil bagi saya untuk mengatasi kesalahan itu:

tambahkan berikut ini ke package.json deps saya:

"mongoose": "~4.4.16",
"mongodb": "~2.1.18",
"keystone": "^0.3.19",

kemudian

npm install

akhirnya

rm -rf node_modules/keystone/node_modules/mongodb
rm -rf node_modules/keystone/node_modules/mongoose

Sekarang saya tidak mendapatkan kesalahan.

Semua 115 komentar

Permasalahan yang sama

Masalah yang sama di sini; mundur ke 3.8.15 menyelesaikan masalah pada OSX di bawah 0.11.13.

Ya, saya juga memperhatikan ini. Kode Anda akan tetap berfungsi, hanya saja kinerja Anda mungkin lebih buruk. Saya akan memperbaiki ini untuk versi berikutnya.

oke

Permasalahan yang sama

Sama disini. Akan tetap 3.8.15 sampai perubahan.

Oke.... Masalah yang sama!

Ada pembaruan tentang ini?

Saya memiliki masalah yang sama (luwak 3.8.19 dan node 0.10.33). Saya baru saja menyelesaikannya setelah memperhatikan bahwa npm install (dan pembaruan npm) mengkompilasi versi Debug dari bson tetapi index.js (ditempatkan di node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js dalam kasus saya) memerlukan versi Rilis. Seperti yang Anda lihat di bagian kode ini:

try {
    // Load the precompiled win32 binary
    if(process.platform == "win32" && process.arch == "x64") {
      bson = require('./win32/x64/bson');  
    } else if(process.platform == "win32" && process.arch == "ia32") {
      bson = require('./win32/ia32/bson');  
    } else {
      bson = require('../build/Release/bson');  
    }   
} catch(err) {
    // Attempt to load the release bson version
    try {
        bson = require('../build/Release/bson');
    } catch (err) {
        console.error("js-bson: Failed to load c++ bson extension, using pure JS version");
        bson = require('../lib/bson/bson');
    }
}

Saya masuk ke dalam direktori build dan cukup mengkompilasi bson dengan perintah berikut:

make BUILDTYPE=Release all

Di suatu tempat di repositori telah diubah dari Rilis ke Debug, tetapi saya tidak mencarinya.

@Gas3 versi npm yang Anda gunakan dan di platform apa Anda menjalankan ini? Ini seharusnya tidak terjadi di node stabil 0.10.x.

Juga, saya telah berhasil mengulangi ini - terlihat seperti npm install dengan npm 2.0.0 (versi yang datang dengan node 0.11.14) dan node 0.11.14 membuat ini berfungsi dengan baik. Yaitu, rm -rf node_modules && npm install . Bisakah kalian memeriksa apakah ini membantu?

di atas permukaan laut 2.1.7 pada Os X 10.9.5

Bisakah Anda mencoba instal npm bersih - matikan node_modules dan kemudian npm install ? Ini benar-benar terdengar seperti masalah mengubah versi node tanpa membangun kembali js-bson.

+1

@brunobatista coba rm -rf pada node_modules Anda dan lakukan instalasi npm yang bersih.

Permasalahan yang sama:
versi simpul: v0.10.35
versi npm: 2.1.18

Masalah yang sama disini:
OS: Arch Linux
Versi simpul: v0.10.35
versi npm: 2.1.18
Versi luwak: 3.8.21

Mencoba 'rm -rf node_modules; npm cache bersih; npm install' tidak berhasil.
Mencoba juga dengan versi Mongoose 3.8.15 dengan hasil yang sama.

Masalah yang sama ada di Ubuntu 14.04. Langkah saya:
1) Diperbarui npm ke 2.1.18 dari 1.3
2) cache npm bersih
3) rm -rf node_modules
4) npm saya
Berhasil!

Tapi saya melihat kesalahan pada Windows 8.1. Ini "memerlukan" melempar kesalahan:

bson = require('./win32/ia32/bson'); 
The specified procedure could not be found.
C:\Users\d.kiriliuk\Projects\vozovoz\node_modules\mongoose\node_modules\mongodb\node_modules\bson\ext\win32\ia32\bson.node

File bson.node ada

Berencana untuk memperbaiki ini?

Permasalahan yang sama

OS: OSX 10.10.2
Versi simpul: v0.10.36
versi npm: 2.3.0
Versi luwak: 3.8.22

Mencoba 'rm -rf node_modules; npm cache bersih; npm install' tidak berhasil.

Saat membutuhkan luwak, saya mendapatkan hasil ini:

[Error: Module did not self-register.]
js-bson: Failed to load c++ bson extension, using pure JS version

+1

Permasalahan yang sama!!

OS: UBUNTU 14.04 (x64)
versi simpul: 0.12.0
versi npm: 2.5.1
versi luwak: 3.8.21

[Error: node_modules/mongoose/node_modules/mongodb/node_modules/bson/build/Release/bson.node: undefined symbol: node_module_register]

(err): js-bson: Failed to load c++ bson extension, using pure JS version

Adakah solusi atau rencana untuk memperbaikinya?

Saya tidak menemukan apa-apa :(
Saya mencoba menginstal ulang paket saya ...
membangun kembali bson dengan node-gyp
bersihkan cache npm dan ....
tidak ada yang terjadi.
masih saya mendapat pesan ini

Saya memperbarui paket luwak saya ke 3.9.7
masalahnya diperbaiki tetapi saya mendapat pesan ini dari luwak:

##############################################################
#
#   !!! MONGOOSE WARNING !!!
#
#   This is an UNSTABLE release of Mongoose.
#   Unstable releases are available for preview/testing only.
#   DO NOT run this in production.
#
##############################################################

TETAP!
Saya menggunakan luwak versi stabil terbaru (3.8.23)
masalahnya selesai :)

"Memperbaiki" ini secara umum sebenarnya tidak mungkin, karena pesan kesalahan ini dapat berarti salah satu dari banyak hal. Ini dapat berarti bahwa Anda tidak memiliki versi python yang tepat atau kompiler C++ yang tepat diinstal (karena node-gyp), itu dapat berarti bahwa Anda mengganti versi node dari saat Anda menginstal npm luwak, dll.

Kamu menang!

Tolong maafkan saya, itu salah saya.

builderror.log:
gip ERR! konfigurasikan kesalahan
gip ERR! stack Error: Python "python" yang dapat dieksekusi adalah v3.4.2, yang tidak didukung oleh gyp.
gip ERR! stack Anda dapat meneruskan --python switch untuk menunjuk ke Python >= v2.5.0 & < 3.0.0.
gip ERR! tumpukan di failPythonVersion (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:108:14)
gip ERR! susun di /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:97:9
gip ERR! tumpukan di ChildProcess.exithandler (child_process.js:735:7)
gip ERR! tumpukan di ChildProcess.emit (events.js:110:17)
gip ERR! tumpukan di mayClose (child_process.js:108:16)
gip ERR! menumpuk di Socket.(child_process.js:1176:11)
gip ERR! tumpukan di Socket.emit (events.js:107:17)
gip ERR! tumpukan di Pipe.close (net.js:476:12)
gip ERR! Sistem Linux 3.14.27-1-lts
gip ERR! perintah "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gip ERR! cwd /home/node/sites/hellooo/src/node_modules/luwak/node_modules/mongodb/node_modules/bson
gip ERR! simpul -v v0.12.0
gip ERR! node-gyp -v v1.0.2
gip ERR! tidak baik

Dalam kasus saya solusinya adalah:

konfigurasi npm mengatur python python2.7

Instal ulang luwak dan berfungsi.

Saya tidak memperhatikan baris ini dari output 'npm install':

[email protected] instal /home/node/sites/hellooo/src/node_modules/mongoose/node_modules/mongodb/node_modules/bson
(node-gyp membangun kembali 2> builderror.log) || (keluar 0)

Ini berarti ada kesalahan saat membangun bson yang tidak saya perhatikan.

Terima kasih banyak @vkarpov15.

Ya, saya lupa mengatakan bahwa saya memperbarui konfigurasi npm python saya.

tnx @vkarpov15

Hai,
Saya telah menjalankan "rm -rf node_modules && npm install" dan saya melihat di bawah.

/

[email protected] instal c:\Raj\project\meandemo\node_modules\mongoose\node_modu
lesmongodb\node_modules\kerberos
(node-gyp membangun kembali 2> builderror.log) || (keluar 0)

c:\Raj\project\meandemo\node_modules\luwak\node_modulesmongodb\node_modules\
kerberos>simpul "c:\Program Files\nodejs\node_modulesnpmbin\node-gyp-bin....\
node_modules\node-gypbin\node-gyp.js" membangun kembali

[email protected] instal c:\Raj\project\meandemo\node_modules\mongoose\node_modules
mongodb\node_modulesbson
(node-gyp membangun kembali 2> builderror.log) || (keluar 0)

Ketika saya menjalankan server saya, saya mendapatkan kesalahan di bawah ini ..

{ [Kesalahan: Tidak dapat menemukan modul '../build/Release/bson'] kode: 'MODULE_NOT_FOUND' }

js-bson: Gagal memuat ekstensi c++ bson, menggunakan versi JS murni
c:\Raj\project\meandemo\node_modules\express\lib\router\route.js:170
melempar Kesalahan baru (pesan);
^
Kesalahan: Route.get() memerlukan fungsi panggilan balik tetapi mendapat [objek Tidak Terdefinisi]
di Rute.(c:\Raj\project\meandemo\node_modules\express\lib\route
r\route.js:170:15)
di Array.forEach (asli)
di Route. (fungsi anonim) sebagai get
di EventEmitter.app.(fungsi anonim) (c:\Raj\project\meandemo\node_modul
es\express\lib\application.js:429:19)
di Obyek.(c:\Raj\project\meandemo\server.js:23:5)
di Module._compile (module.js:460:26)
di Object.Module._extensions..js (module.js:478:10)
di Module.load (module.js:355:32)
di Function.Module._load (module.js:310:12)
di Function.Module.runMain (module.js:501:10)

Berikut adalah detail versi saya:
OS: Windows 7
simpul: 0.12.0
luwak: 3.8.23
npm: 2.5.1

Mohon sarannya

Hai @rajnav , Lihatlah builderror.log, ini dapat menunjukkan kepada Anda asal usul masalahnya.

Masalah yang sama tetapi builerror.log hanya berisi satu baris:

child_process: customFds option is deprecated, use stdio instead.

dalam proyek/node_modules/luwak/node_modules/mongodb/node_modules/bson

Saya menggunakan osx yosemite dan node 0.12.x

Saya mendapat peringatan ini juga, tetapi itu berhasil untuk saya.

Saya menggunakan fedora 20 dengan node 0.12.x dan mendapat peringatan ini. Apakah aman untuk terus bekerja dengannya?
Saya tidak punya masalah dengan node 0.10.x

Tampaknya peringatan penghentian, tetapi tidak yakin tentang efek sampingnya. Seperti yang saya katakan sebelumnya, ini bekerja dengan baik untuk saya.

@rajnav kesalahannya terlihat seperti di Express. Kesalahan bson tidak ditemukan adalah peringatan bahwa ia tidak dapat menemukan biner bson asli yang dikompilasi, seharusnya tidak menyebabkan crash.

Juga, saya telah melihat peringatan penghentian opsi customFds. Harus tetap bekerja. Saya akan menyelidiki lebih lanjut dari mana asalnya.

file builderror.log memberikan jawaban.
Saya telah melewati flag --python=python2.7 dengan npm install, seperti yang diminta, dan tidak ada lagi kesalahan. Ini telah bekerja pada keduanya, instalasi windows 64bit dan ubuntu.

npm install --python=[path to python] mongoose

PS
Di mesin windows, saya masih punya
child_process: customFds option is deprecated, use stdio instead.
dalam file builderror.log, tetapi ini tidak menyebabkan kesalahan apa pun muncul di konsol node saat menjalankan aplikasi.

luwak: 3.8.24
npm: 2.7.9
os: Arch Linux

sedang mengerjakan
rm -rm node_modules/
npm cache clean
npm config set python python2.7
npm install
bekerja untuk saya.

lakukan pembersihan npm install
terjadi pada saya setelah memperbarui node.js.

Luwak 3.8.21
Ubuntu 14.04.2

Menggunakan

npm config set python python2.7
cd node_modules/mongoose/node_modules/mongodb/node_modules/bson
npm install

bekerja untuk saya!

Jadi python adalah persyaratan untuk menggunakan luwak??? Tidak jelas di dokumen, jadi saya tidak diizinkan menginstalnya di lingkungan produksi. (Kecuali didokumentasikan...) :(

Mongoose hanya membutuhkan Python karena node-gyp (pembungkus node di sekitar sistem pembangunan v8) membutuhkan python . Python bukan ketergantungan runtime untuk luwak. Jika Anda memerlukan dokumentasi bahwa luwak membutuhkan python untuk membangun parser C++ bson, klik di sini .

Namun, sekali lagi, luwak akan bekerja seperti yang diharapkan meskipun tidak dapat membangun parser bson. Satu-satunya fitur yang membutuhkan node-gyp untuk berhasil adalah mekanisme otentikasi kerberos.

Terima kasih banyak,

@jayflo itu

+1 Di sini mongodb/js-bson/issues/118

Ini akan menyelesaikan masalah Anda:

$ cd node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/
$ npm install

Jadi cukup jelas bagi saya bahwa siapa pun yang mengintegrasikan mongodb-core ke mongodb ke dalam luwak adalah orang yang harus disalahkan. Seseorang melewatkan instalasi npm di sana. Apakah ada cara untuk meningkatkan ini, karena jelas ribuan pengguna terpengaruh dan dampak (bisnis) dapat dianggap sangat tinggi dengan aman, setidaknya menurut saya, tetapi saya salah sebelumnya.

Tidak ada yang melewatkan instalasi npm, ini berfungsi dengan baik jika sistem Anda dikonfigurasi untuk menjalankan node-gyp dengan benar. Meskipun demikian, mengonfigurasi sistem Anda untuk menjalankan node-gyp dengan benar adalah kesulitan besar di bagian belakang, jadi kami sedang mempertimbangkan binari pra-pembuatan dan menginstal npm mencoba mengunduh biner pra-bangun terlebih dahulu kecuali Anda memilih keluar.

Untuk dampak bisnis, sekali lagi, ini adalah _warning_, bukan _error_.

Terima kasih atas jawaban klarifikasi Anda. grunt dan node tidak akan mulai jika saya tidak menginstal npm di direktori mongo-core, jadi peringatan ini adalah show-stopper setidaknya dalam skenario saya dan jelas (gulir ke atas) di banyak skenario lainnya. Saya dapat melihat bahwa dari sudut pandang Anda, ini bukan urusan proyek Anda, namun gagal untuk menjalankan yang baru di Linux, Mac dan Windows.

Am 17.04.2015 um 15:33 schrieb Valeri Karpov [email protected] :

rning, bukan kesalahan.

jika mereka tidak memulai, maka ada hal lain yang salah. Pesan ini adalah peringatan dan tidak akan mencegah Anda memulai grunt atau node. Bisakah Anda menunjukkan kepada saya sisa output dari perintah instal npm asli Anda (sebelum Anda menjalankan npm install di mongodb-core)?

Sekali lagi, jika Anda ingin menghilangkan peringatan ini sekarang, satu-satunya cara saat ini adalah menyiapkan dependensi node-gyp .

terima kasih vkarpov15 untuk tetap bertahan di utas ini. saya hanya ingin memuntahkan +1 saya sendiri sehingga Anda tahu ada orang lain dengan masalah yang sama. yang sedang berkata, saya masih dapat menjalankan aplikasi saya, jadi saya akan menerima saran Anda bahwa ini bukan kesalahan, tetapi peringatan. jadi, inilah harapan bahwa peringatan itu diselesaikan di pembaruan di masa mendatang untuk ketenangan pikiran ekstra itu. Terima kasih lagi.

fyi ~ peringatan ini muncul setelah saya memperbarui node dari 10 menjadi 12 ...

@camachowebworld coba bersihkan node_modules Anda dan instal ulang rm -rf node_modules && npm install . Biasanya ketika Anda melakukan pemutakhiran versi node utama, Anda perlu membangun kembali ekstensi asli apa pun, termasuk bson. Menginstal ulang harus melakukan trik.

Ubuntu 14.04.1 LTS (AWS EC2)
Harus menjalankan "Sudo apt-get install build-essential"

Mungkin bisa membantu seseorang.

vkarpov15 terima kasih telah membalas pesan. sory kurang pengalaman. Anda mengatakan, "coba bersihkan node_modules Anda dan instal ulang rm -rf node_modules && npm install". saya di windows. di mana saya menjalankan perintah ini? saya mencoba menjalankan "rm -rf node_modules" di folder proyek saya, ini memberi tahu saya "rm is not.... command".

Hapus saja node_modules di Windows explorer, hal yang sama. Kemudian jalankan npm install di mana pun Anda menjalankannya.

Saran umum, gunakan git bash + mingw jika Anda melakukan pengembangan simpul di Windows

Mendapat kesalahan yang sama tepat setelah memperbarui node ke versi 0.12.3 pada Windows 7 (x64).
Saya sudah menginstal: node-gyp, node-pre-gyp, python, .NET SDK -> setelah itu, saya tidak lagi menerima pesan kesalahan tentang perakitan. Dan untuk folder luwak 3.8.28 mongoose\node_modules\mongodb\node_modules\bson\build\Release
berisi file-file ini:

/obj
/bson.exp
/bson.lib
/bson.node
/bson.pdb

Tapi pesan

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }  
js-bson: Failed to load c++ bson extension, using pure JS version

masih muncul

UPD : Saya menemukan solusi untuk saya.

Untuk pengguna iojs:

Versi terbaru tidak mendukung luwak dengan baik. Turunkan ke rilis stabil terakhir v2.0.0 (gunakan nvm demi Tuhan). Dan itu akan bekerja seperti pesona!

Menambahkan info ini untuk berjaga-jaga, di sini di perusahaan kami, kami mengalami masalah ini baru-baru ini.

Di windows saya menyelesaikan masalah ini dengan mengubah satu baris di:

node_modulesmongodb\node_modulesmongodb-core\node_modulesbson\node_modulesbons-ext\ext\index.js

baris setelah:

// Mencoba memuat versi rilis bson
mencoba {

dari: bson = membutuhkan('../build/Release/bson');
ke: bson = membutuhkan('../../../lib/bson/bson');

Pesan kesalahan:
{ [Kesalahan: Tidak dapat menemukan modul '../build/Release/bson'] kode: 'MODULE_NOT_FOUND' }
js-bson: Gagal memuat ekstensi c++ bson, menggunakan versi JS murni

sekarang hilang dan mongo tampaknya berfungsi dengan baik. Menggunakan driver mongodb ver. 2.0.33

Semoga membantu.

Adakah yang bisa mengonfirmasi bahwa solusi ChrisGciso adalah solusi yang layak? Kami sekarang menghadapi masalah tahun yang sama dengan Atlassian Bamboo. Adakah ide bagaimana cara memperbaikinya dengan Bambu?

Ini bukan solusi, hanya peretasan. Dengan cara yang sama, Anda bisa menghapus output konsol di file itu.

Saya berjuang untuk memahami bahwa bagaimana mundur ke JS Bson dan peringatan bahwa itu tidak seperforma implementasi C++, hanyalah masalah kosmetik.

Stephan Kristyn
Edelweistr. 4
81541 MΓΌnchen

+49 151 5461 8086
S. [email protected]
http://meshfields.de

Pada 9 Juni 2015 17:38 +0200, [email protected] , menulis:

Ini bukan solusi, hanya peretasan. Dengan cara yang sama, Anda bisa menghapus output konsol di file itu.

β€”
Balas email ini secara langsung atau lihat di GitHub(https://github.com/Automattic/mongoose/issues/2285#issuecomment-110406406).

@ChrisGciso itu hanya menyapu peringatan di bawah karpet. Itu berarti akan menggunakan parser JavaScript bson tanpa memeriksa yang dikompilasi.

@nottinhill sayangnya saya tidak punya pengalaman dengan bambu, jadi saya tidak bisa membantu. Apakah itu 'masalah kosmetik' tergantung pada kasus penggunaan Anda - misalnya, dalam lingkungan CI seperti bambu, Anda biasanya terlalu khawatir tentang mengurangi satu mikrodetik di sini dan menghemat beberapa byte memori di sana. Di lingkungan prod Anda adalah tempat yang berpotensi penting, dan jika Anda benar-benar membutuhkan sedikit kinerja ekstra, maka menyiapkan dependensi node-gyp dan menginstal ulang adalah yang perlu Anda lakukan.

Seperti itu, salah satu hal yang kami harapkan untuk dilakukan di masa mendatang adalah menutup kesenjangan antara parser bson yang dikompilasi dan parser bson JavaScript. Jika Anda ingin berkontribusi, silakan kunjungi http://github.com/mongodb/js-bson :)

@vkarpov15 Menyapu pesan "Kesalahan" di bawah karpet jika tidak memiliki resolusi sederhana dan tidak menyebabkan dampak material pada kinerja mungkin lebih baik daripada mencampurnya dengan kesalahan nyata yang mencerminkan masalah nyata. Melihat kesalahan ini berulang-ulang selama berbulan-bulan tidak baik kecuali jika dapat ditangani, terutama bagi orang baru yang ingin menggunakan driver. Apakah ada solusi yang lebih baik yang tidak melibatkan serangkaian langkah rumit untuk menghilangkan pesan kesalahan?

Mungkin harus diberi label "Info" bukan "Kesalahan"?

Sebuah poin yang adil. Ada flag native_parser yang seharusnya mencegah mongodb mencari versi kompilasi js-bson.

Saya menggunakan Fedora 22, node v0.12.4, diinstal malam ini

konfigurasi npm mengatur python python2.7
=> memecahkan masalah saya, thx

Saya mengalami masalah ini di sini dalam wadah archlinux Docker, dan solusi saya adalah:

$ pacman -S gcc make nodejs npm python2
$ npm config set python python2.7
$ npm install -g node-gyp

Versi luwak 4.0.5

Mengenai Kesalahan Bambu - Saya _menyelesaikan_ masalah dengan membuat tugas npm dan mengatur variabel lingkungan Anda seperti biasa, lalu parameter berikut:

install node-gyp

Anda akan melihat keluhan tentang bendera global yang hilang, tetapi di Bamboo setidaknya kami tidak memilih pemasangan global karena fleksibilitas migrasi.

Edit Kesalahan kembali:

build   17-Jun-2015 10:30:53    Running "mochaTest:src" (mochaTest) task
build   17-Jun-2015 10:30:53    { [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
error   17-Jun-2015 10:30:53    js-bson: Failed to load c++ bson extension, using pure JS version

Ya, itu berhasil untuk saya, terima kasih.

Sebenarnya saya juga harus menginstall gcc dan make juga, agar bisa mengkompilasi cpp menjadi biner.

β€”
Frederico Souza
Pendiri RioBus - http://riob.us/ http://riob.us/
Telepon: (+55 21) 97285-8787
Rio de Janeiro, Brasil

Em 17/06/2015, (s) 05:22, Stephan Kristyn [email protected] escreveu:

Mengenai Kesalahan Bambu - Saya memecahkan masalah dengan membuat tugas npm dan mengatur variabel lingkungan Anda seperti biasa, lalu parameter berikut:

instal node-gyp
Anda akan melihat keluhan tentang bendera global yang hilang, tetapi di Bamboo setidaknya kami tidak memilih pemasangan global karena fleksibilitas migrasi.

β€”
Balas email ini secara langsung atau lihat di GitHub https://github.com/Automattic/mongoose/issues/2285#issuecomment -112714644.

Saya punya masalah ini. Perbarui connect-mongo ke 0.8.2 dan luwak ke versi 4.0.7, dan itu berfungsi dengan baik.

Node v0.12.2, NPM 2.13.0, OSX 10.10.4

Masalah yang sama menggunakan sailsjs

Tingkatkan ke luwak >= 4.0.6 jadi bson tidak menggunakan ekstensi C++ lagi. Bagaimanapun, pesan ini hanyalah peringatan.

Memutakhirkan ke 4.0.6 berhasil untuk saya, terima kasih vkarpov15.

Permasalahan yang sama. gunakan xUbuntu 15.04.
Saya mencoba menginstal paket libkrb5-dev, nodejs-legacy. dan tingkatkan Node.js v4.1.0, npm 2.14.3, luwak 4.1.7. tapi gak bisa :-(

Apakah Anda mencoba menginstal ulang bersih? Juga, jangan khawatir tentang libkrb kecuali jika Anda peduli dengan kerberos auth, luwak akan berfungsi dengan baik tanpanya.

@TimePower Apakah Anda mencoba instal node-gyp global?

Saya mendapatkan kesalahan berikut ketika mencoba menggunakan apa pun yang terkait dengan luwak:

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

Node 4.1.0 dan Luwak 4.1.10.

rm -rf node_modules && npm cache clean && npm install @jackdbernier

Juga itu peringatan, bukan kesalahan.

Tingkatkan ke luwak >= 4.0.6 jadi bson tidak menggunakan ekstensi C++ lagi.

Saya menggunakan Mongoose 4.1.10 dan masih mendapatkan kesalahan.

saya memecahkan penurunan versi mongodb ke 2.6

rm -rf node_modules && npm cache clean && npm install
tidak berfungsi untuk saya, setelah kesalahan yang sama

Masalah yang sama di sini:

rm -rf node_modules && npm cache clean && npm install
tidak berfungsi untuk saya, setelah kesalahan yang sama

js-bson: Failed to load c++ bson extension, using pure JS version

Pengaturan saya:

  • Mesin AWS Ubuntu: Ubuntu 14.04.1 LTS
  • node.js v0.12.7
  • Luwak 4.1.12
  • MongoDB 2.6.5

Ini semua dimulai ketika saya memutakhirkan nodejs, memutakhirkan ke Mongoose 4.1.12 juga tidak membantu.

Bagaimana ini masih menjadi masalah??? Haruskah saya repot-repot meninggalkan informasi lebih lanjut di sini ... semua orang telah melakukannya untuk saya .... Apakah ada yang akan menstabilkan ini atau apa???

Bukan kesalahan, hanya peringatan. Juga ada cukup informasi di luar sana / di utas ini tentang cara mengatur node-gyp dengan benar.

@vkarpov15 Terima kasih atas jawabannya. Ini adalah kesalahan, bukan peringatan: pemasangan npm gagal setelah pesan ini. Bisakah Anda memberi tahu saya lebih banyak tentang bagaimana ini berhubungan dengan node-gyp.

npm install tidak menampilkan pesan ini, jadi saya sangat meragukannya.

Saya ragu ini terkait dengan node-gyp dengan cara apa pun. Saya menggunakan OS X 10.11, saya telah menggunakan _lots_ dependensi asli seperti node-sass, bahkan sebelum mereka merilis binari untuk versi Node.js baru dan mereka dikompilasi dengan benar. Jadi pengaturan saya baik-baik saja. Dan lagi:

node keystone.js 
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

Saya menginstal semua dependensi langsung dari Node.js 4.

@vkarpov15 Anda benar, kesalahan saya. Kesalahan terjadi ketika mencoba meminta modul di simpul, setelah memperbarui dengan npm. Saya mencoba membuatnya bekerja selama beberapa jam tetapi tidak ada saran yang diberikan secara online tampaknya membantu, jadi saya menurunkan versi lagi dan belum melihatnya sejak itu.

Saya baru saja menyelesaikannya.

Saat Anda menginstal modul luwak dengan npm, modul ini tidak memiliki modul bson bawaan di foldernya. Dalam file node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js, ubah baris

bson = membutuhkan('../build/Rilis/bson');
ke

bson = membutuhkan('bson');

Masalah yang sama pada FreeBSD.

Bagaimana kita mendapatkan ekstensi C++ BSON untuk dibangun?


Inilah yang dikatakan npm install :

> [email protected] install /usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

gmake: Entering directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos/build'
  SOLINK_MODULE(target) Release/obj.target/kerberos.node
  COPY Release/kerberos.node
gmake: Leaving directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos/build'

> [email protected] install /usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

gmake: Entering directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson/build'
  CXX(target) Release/obj.target/bson/ext/bson.o
bson.target.mk:88: recipe for target 'Release/obj.target/bson/ext/bson.o' failed
gmake: Leaving directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson/build'
[email protected] node_modules/crypto

[email protected] node_modules/bson

Masalah yang sama disini

@vkarpov15 Saya mengkonfirmasi apa yang dikatakan @mgol . Ada masalah lain selain konfigurasi node-gyp . Saya juga memiliki banyak bangunan modul asli lainnya dengan benar. Tidak ada kesalahan yang terjadi saat menginstal.

Ada masalah dengan node v4 yang mencegah c++ bson extension , menghasilkan peringatan js-bson: Failed to load c++ bson extension, using pure JS version .

Berikut adalah log lengkap ketika saya menginstal mongoose ( [email protected] ) di node v4

apairet$ rm -rf node_modules/mongoose
apairet$ npm install
-
> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bson/ext/bson.o

> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o

[email protected] node_modules/mongoose
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected])

Demi kelengkapan, saya menginstal versi terbaru mongoose ( [email protected] ) tetapi kesalahannya tetap sama:

apairet$ npm install mongoose<strong i="22">@latest</strong>
npm WARN peerDependencies The peer dependency kerberos@~0.0 included from mongodb-core will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
-
> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o
  CXX(target) Release/obj.target/kerberos/lib/worker.o
  CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:509:13: warning: implicit declaration of function 'gss_acquire_cred_impersonate_name' is invalid in C99 [-Wimplicit-function-declaration]
        maj_stat = gss_acquire_cred_impersonate_name(&min_stat,
                   ^
1 warning generated.
  CC(target) Release/obj.target/kerberos/lib/base64.o
  CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
  SOLINK_MODULE(target) Release/kerberos.node
[email protected] node_modules/mongoose
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

Beri tahu saya jika saya dapat memberikan informasi tambahan.
rgds

@antoinepairet versi node yang mana sebenarnya? Ada banyak rilis v4.

Terima kasih atas jawaban cepat Anda @vkarpov15. Saya sangat menghargainya :-).
Maaf karena tidak menyebutkan versi simpul di posting saya sebelumnya. Saya menguji 3 versi simpul:
4.2.1 , 4.1.0 dan 4.0.0 dengan prosedur berikut:

  1. nvm instal 4.1.0
  2. rm -rf node_modules/
  3. instal npm
  4. uji aplikasi dan lihat apakah peringatan itu muncul

Setiap kali memiliki js-bson: Failed to load c++ bson extension, using pure JS version

Saya telah melakukan tes yang diperluas pada OSX. Di Linux, saya hanya menguji 4.2.1 .

Beri tahu saya jika saya dapat memberikan lebih banyak info / pengujian.
Terima kasih lagi

PS: @AsyaHristeva Ini bukan soal C++ IDE. modul asli lainnya dibangun dengan baik :-)

Hmm pada 4.1.1 [email protected] berfungsi dengan baik di mac saya, dan bagaimanapun kesalahan itu seharusnya tidak terjadi karena [email protected] menggunakan [email protected], yang tidak menggunakan ekstensi C++ untuk BSON. Saya mendapatkan kesalahan ini dengan [email protected], tapi itu karena driver mongodb lama dirilis, [email protected], tidak terlalu mendukung node >= 4 .

Saya mendapatkan kesalahan yang sama dengan Node v4.2.4, Mongo v2.6.11, OSX 10.11.2

npm install [email protected]
npm WARN peerDependencies The peer dependency kerberos@~0.0 included from mongodb-core will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.

> [email protected] install /Users/jw/Work/sp_app/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o
  CXX(target) Release/obj.target/kerberos/lib/worker.o
  CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:509:13: warning: implicit declaration of function 'gss_acquire_cred_impersonate_name' is invalid in C99 [-Wimplicit-function-declaration]
        maj_stat = gss_acquire_cred_impersonate_name(&min_stat,
                   ^
1 warning generated.
  CC(target) Release/obj.target/kerberos/lib/base64.o
  CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
  SOLINK_MODULE(target) Release/kerberos.node
npm WARN unmet dependency /Users/jw/Work/sp_app/node_modules/latest/node_modules/npm requires request@'~2.67.0' but will load
npm WARN unmet dependency /Users/jw/Work/sp_app/node_modules/request,
npm WARN unmet dependency which is version 2.27.0
[email protected] node_modules/mongoose
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected]
β”œβ”€β”€ [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

Ketika saya menjalankan aplikasi saya, saya mendapatkan:

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

Saya ingin tahu apakah ini masalah OSX karena saya tidak punya masalah di Linux. Mungkinkah ini ada hubungannya dengan gcc, kompiler Clang default yang diinstal oleh XCode.

gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.2.0
Thread model: posix

@vkarpov15 benar, perbarui luwak ke 4.4.5 perbaiki masalah ini

@vkarpov15 , Apakah saya benar dalam menganggap masalah ini disebabkan oleh menjalankan versi Mongoose yang lebih baru dengan versi MongoDB yang lebih lama β€” versi 2.X misalnya?

Tidak, versi mongodb tidak ada hubungannya dengan itu.

[TETAP]

Saya juga punya masalah ini


OS: Windows 10
simpul: v4.2.3
npm: 2.14.7


saya hanya cukup mengatur jalur python

npm config set python python2.7

dan instal ulang luwak

npm install mongoose


dan itu berhasil.

@nityanarayan44 Ini berhasil untuk saya

@mgol
Saya menggunakan OSX 10.10.5, node 4.4.2, npm 2.15.0, keystone 0.3.17

Saya pergi ke node_modules/keystone/package.json , dan menghapus mongoose dari dependensi, lalu

npm config set python python2.7
npm install mongoose

ini berhasil untuk saya:

Juga bekerja untuk saya solusi @nityanarayan44

Masalah yang sama. Versi saya adalah node 2.15, platform Centos

Tidak ada versi Node seperti 2.15 jadi saya pikir maksud Anda io.js. Dan
io.js telah lama tidak didukung oleh upstream, tingkatkan ke Node 4
atau 6 secepatnya.

MichaΕ‚ GoΕ‚Δ™biowski

@arefm Terima kasih , ini berhasil bagi saya tentang memperbarui versi 3.8.23. Terlebih lagi, memecahkan masalah lain: panjang tidak ditentukan dan seterusnya.

@mgol Dia berbicara tentang npm . Versi terbaru npm2 adalah 2.15.4.

@mnpenner saya percaya ini 3.8.8

@jwerre saya bilang npm2. Beberapa dari kita terjebak pada npm 2 karena 3 memiliki sejumlah masalah yang berbeda.

@mgol Maaf, versi npm adalah 2.15, bukan node.

@mnpenner Ya, Anda adalah orang yang cerdas!

Saat menggunakan dengan Keystone, inilah yang berhasil bagi saya untuk mengatasi kesalahan itu:

tambahkan berikut ini ke package.json deps saya:

"mongoose": "~4.4.16",
"mongodb": "~2.1.18",
"keystone": "^0.3.19",

kemudian

npm install

akhirnya

rm -rf node_modules/keystone/node_modules/mongodb
rm -rf node_modules/keystone/node_modules/mongoose

Sekarang saya tidak mendapatkan kesalahan.

@aventurella Saya menemukan batu yang sama ketika saya mencoba keystone hari ini, terima kasih atas solusi Anda.

tapi sekarang kita mendapatkan beberapa kesalahan asing dan beberapa kesalahan yang hilang, apakah ini boleh?

@tomwang1013 memperbarui luwak memecahkan masalah, tetapi entah bagaimana aplikasi saya tidak terhubung ke DB.....

Dalam kasus kami, alasan c++ versi bson tidak ditemukan adalah karena kami berada di belakang proxy perusahaan dan sesuatu dalam proses pembuatan BSON perlu menjangkau untuk mengambil file. Ketika kami melihat di node_modules/bson/builderror.log, kami melihat kesalahan seperti ini:

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)

Yang menunjukkan bahwa proxy mungkin menjadi masalahnya.

Maaf untuk membangkitkan kembali komentar tentang ini, tetapi saya ingin memposting ini untuk orang lain yang terkena ini di masa depan karena utas ini sangat membantu dalam menyelesaikan masalah kami.

@aventurella terima kasih atas perbaikan Anda, itu berhasil! Membuat saya merasa sedikit lucu sekalipun.

Saya memiliki masalah ini pada Windows 10, tidak dapat menjalankan contoh "dasar" juga ... seharusnya file instalasi harus menyediakan semua hal untuk menjalankan sesuatu, atau setidaknya memiliki instruksi untuk melakukannya ...
Ini menyebalkan!!!!! :@

@GST5555 jika Anda ingin mendapatkan bantuan secara real time, jangan ragu untuk bergabung dengan kami di salah satu komunitas berikut:
Gitter.im
Kendur

Apakah halaman ini membantu?
0 / 5 - 0 peringkat