Saya mendapatkan kesalahan di bawah ini:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
Inilah detail versi saya:
OS: Windows 7
MongoDB: 2.6.5
Node: 0.12.0
Saya sudah mencoba hal-hal ini sebelum saya memposting masalah di sini.
Saya pergi ke
\node-modules\mongoose\node-modules\mongodb\node-modules\bson
folder dan membuat perubahan di bawah ini pada file gyp-mengikat dari'include_dirs': [ '<!(node -e "require(\'nan\')")' ]
ke'include_dirs': ["<!(nodejs -p -e \"require('path').dirname(require.resolve('nan'))\")"]
Jalankan perintah ini
npm install -g node-gyp
Saya telah memperbarui versi luwak ke 3.8.21 di dalamnya
package.json
Tidak ada yang berhasil. Tolong sarankan
Jawaban:
Temukan di modul npm mongodb:
Ubah jalur ke versi js di blok tangkap:
Untuk:
Atau salin file di:
Dari:
sumber
Saya memiliki masalah ini hari ini (19 Februari 2016) dan saya menyelesaikannya hanya dengan menginstal versi terbaru dari Mongoose. Coba letakkan ini di package.json Anda:
Semoga itu bisa membantu. Memecahkannya untukku!
sumber
Masalahnya adalah ketika Anda menginstal luwak melalui npm itu mengasumsikan Anda memiliki python yang diinstal pada windows Anda dan mencoba untuk membangun perpustakaan yang diperlukan. Karena Anda tidak memiliki python, ia melompati fase pembangunan dengan peringatan. Tetapi ketika Anda memulai aplikasi Anda, modul yang diperlukan tidak ada sehingga Anda mendapatkan kesalahan ini.
Untuk melakukan hal-hal yang benar, instal python pertama (versi 2.7) di komputer Anda dari: https://www.python.org/downloads/ atau jika Anda telah menginstal chockolatey ketik saja
choco install python2
.Kemudian pastikan variabel python Anda diatur. Anda dapat mengaturnya pada command prompt seperti:
(Tentu saja Anda harus mengubah path sesuai dengan lokasi python Anda) Kemudian instal node-gyp:
Sekarang Anda dapat menginstal ulang luwak atau modul apa pun yang menyebabkan masalah:
Anda akan melihat beberapa garis kuning dan bukan yang merah kali ini tetapi kesalahannya akan hilang.
sumber
--msvs-version=2012
atau2013e
tergantung pada apa yang telah Anda instal. misalnyanpm install mongoose --msvs-version=2012
Saya mengatasi masalah ini dengan menginstal versi mogoose
3.8.23
sumber
Ini berhasil untuk saya. Cari di ruang kerja Anda untuk teks:
Anda mungkin akan menemukannya di dalam modul luwak dan biarawan.
Kemudian ganti masing-masing:
dengan:
itu saja!
sumber
Coba
npm install [email protected]
dan gantibson = require('../build/Release/bson');
kebson = require('../browser_build/bson');
dalam node_modules / bson / ext / index.jssumber
Ini bekerja untuk saya:
Buka file (dalam proyek Anda):
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
dan ubah:
bson = require('../build/Release/bson');
untuk:
bson = require('bson');
Referensi: https://github.com/mongodb/js-bson/issues/118
sumber
node_modules
direktori Anda ke dalam kontrol sumber?Jawaban singkat
Instal mongodb versi terbaru.
Jawaban yang sedikit lebih panjang
Pastikan package.json Anda menggunakan mongodb versi terbaru, lalu hapus node_modules / mongodb dan lakukan npm install lagi. Jika Anda tidak menggunakan mongodb sebagai ketergantungan langsung, cobalah untuk menemukan paket mana yang menggunakan mongdb. Saya menggunakan:
Jadi saya memperbarui ./sails-mongo/package.json ke:
Kemudian hapus node_modules / mongodb dan lakukan instalasi npm lagi. Tampak baik-baik saja sekarang.
Jawaban yang lebih panjang
Saya tidak suka cara penggunaan yang disarankan saat ini
Sejak melihat ../browser_build/bson.js, file 4k + lines, yang tampaknya juga merupakan implementasi "non-pribumi". Jadi meskipun tidak akan mengeluarkan keluhan, masih "menggunakan versi JS murni", yang berarti kinerja lebih lambat.
Melihat https://github.com/mongodb/js-bson/issues/145 dan https://github.com/mongodb/js-bson/issues/165 , sepertinya masalah ini disebabkan oleh:
Jadi saya mencoba untuk menghapus seluruh node_modules dan masih mendapat kesalahan yang sama. Dan melihat package.json dari node_modules / mongodb, versinya masih 1.4.26, bukan terbaru 2.1.7.
Rupanya mongodb saya datang sebagai ketergantungan dari paket lain yang saya instal: sails-mongo. Memodifikasi package.json dari layar-mongo dan mengulangi instalasi npm akhirnya menyelesaikan masalah.
sumber
Menyebarkan Keystone JS CMS Saya memiliki kesalahan yang sama dan saya pikir solusi paling elegan adalah ini:
Pasang
npm-check-updates
:Di dalam direktori situs keystone Anda, di mana
package.json
ditempatkan, periksa dependensi:Kemudian perbarui semua paket:
Dan akhirnya jika Anda memilih
jade
untuk templat, mungkin Anda perlu menginstaljade
modul secara eksplisit:sumber
Jawaban yang ditandai benar-benar salah. Yang perlu dilakukan hanyalah menyembunyikan pernyataan log konsol dan tidak melakukan apa pun untuk mengatasi masalah sebenarnya. Anda juga bisa menutup mata dan hasilnya akan sama.
Masalahnya disebabkan oleh node-gyp dan hanya itu. Tujuannya adalah untuk mengkompilasi ekstensi asli untuk modul tertentu seperti bson.
Jika gagal melakukannya maka kode akan mundur ke versi JS dan dengan ramah memberi tahu Anda melalui pesan informatif:
Saya berasumsi pertanyaannya adalah benar-benar tentang bagaimana mengkompilasi ekstensi C ++ asli bukan hanya tidak melihat pesan jadi mari kita alamatkan itu.
Agar simpul-gyp berfungsi, simpul-gyp Anda harus mutakhir dengan simpul dan kompiler C ++ (yang akan berbeda berdasarkan OS Anda). Sama pentingnya modul Anda juga harus up to date.
Pertama uninstall dan instal ulang node-gyp
Sekarang Anda harus mencopot dan memasang kembali modul node apa pun di aplikasi Anda (yang mencakup modul yang diinstal oleh persyaratan juga) yang memiliki bson. Itu harus mengatasi kesalahan. Anda dapat mencari 'Lepaskan / bson' dan temukan penyebabnya.
Dan kemudian hapus dan instal kembali modul-modul ini.
Lebih mudah untuk hanya mengulang seluruh
node_modules
folder:Jika Anda masih mengalami masalah maka 1) modul Anda sudah kedaluwarsa - periksa pelacak masalah di repo mereka atau 2) Anda memiliki potensi konflik - kadang-kadang kita mungkin memiliki simpul-gip lokal misalnya. Anda dapat menjalankannya
node-gyp
sendiri dan memverifikasi versi.sumber
Saat membuat pengaturan untuk
www.spotdekho.com
diwindows10
mesin baru , saya tidak dapat menjalankan perintah"nodemon web.js"
karena kesalahan yang samaPerbaiki dengan langkah-langkah di bawah ini:
Ini akan menyelesaikan masalah.
PS: Saya menggunakan luwak versi 4.8.8.
Terima kasih :), semoga membantu seseorang.
sumber
Dalam kasus saya, bit yang datang dengan luwak (
npm install mongoose
) memiliki versimongodb
paket yang berfungsi dinode_modules
foldernya.Langkah-langkah berikut ini menyelamatkan saya dari pemecahan masalah:
npm install mongoose
node_modules\mongoose\node_modules\mongodb
kenode_modules
folder root saya (menimpa versi apa pun yang datang dengannpm install mongodb
)Failed to load c++ bson extension...
kesalahan (atau ubah kode untuk tidak membahas masalah)sumber
Ketika saya mendapatkan kesalahan seperti ini, saya memutakhirkan dari simpul v0.10 ke simpul v4.xx. Apa yang harus saya lakukan adalah menginstal versi gcc yang lebih baru (saya pikir saya punya gcc v4.4.x atau sesuatu). Saya memperbarui ke gcc 4.7.2 dan hal-hal berhasil setelah itu.
sumber
Saya juga punya masalah yang sama dengan bson.
mencoba versi luwak yang lebih baru
memecahkan masalah.
Massimo.
sumber
Jalankan perintah ini untuk menghapus instalan luwak
npm uninstall --save mongoose
- setelah itu instal ulang tetapi kali ininpm
secara otomatis menginstal versi terbaru luwak menjalankannpm install --save mongoose
Ini bekerja untuk saya.sumber
Sayangnya, Semua jawaban di atas hanya setengah benar .. Butuh waktu lama untuk mencari tahu ini ..
Bo luoose instal via npm melempar peringatan dan menyebabkan kesalahan ...
Ini bekerja seperti sihir !!
sumber
Jika Anda menggunakan windows 8.1, Anda mungkin ingin memastikan bahwa Anda memasang modul npm Anda dengan kompiler studio visual yang benar.
Saya telah menginstal Visual Studio 2012, perintah ini berfungsi untuk saya. (setelah menghapus dir node_modules)
npm instal --msvs_version = 2012
Untuk beberapa alasan, node-gyp sedang mencoba menggunakan versi yang tidak tepat dari kompiler Visual Studio. Saya juga memperhatikan bahwa perintah "npm install" sedang mencetak peringatan tentang bukan dependensi node-gyp ketika menginstal modul mongodb dan luwak.
Setelah menggunakan msvs_version yang benar, peringatan instalasi npm hilang dan juga peringatan konsol saat menjalankan aplikasi nodejs saya.
Anda mungkin juga ingin memastikan bahwa Anda menginstal versi Python 2.7.X yang benar dan bukan Python 3.0.X.
Anda juga perlu memastikan bahwa python ada di jalur env Anda.
sumber
npm install --msvs_version=2012
Satu-satunya hal yang membantu saya di Windows 7 (x64): https://stackoverflow.com/a/29714359/2670121
Instal ulang node dan python dengan versi x32.
Saya menghabiskan banyak waktu dengan kesalahan ini (Gagal memuat ekstensi c ++ bson) dan akhirnya, ketika saya menginstal modul
node-gyp
(untuk membangun addons asli) dan bahkan menginstal windows SDK dengan visual studio - nodejs tidak mengenali modul bson.node yang dirakit sebagai modul. Setelah menginstal ulang masalah hilang.Lagi, Apa artinya kesalahan ini?
Sebenarnya, itu bahkan bukan kesalahan. Anda masih bisa menggunakan luwak. Tetapi dalam kasus ini, alih-alih realisasi cepat asli dari modul bson, Anda mendapatkan realisasi js, yang lebih lambat. Saya melihat banyak tips seperti: "edit path jauh di dalam node_modules ..." - yang sama sekali tidak berguna karena itu tidak menyelesaikan masalah tetapi hanya mematikan pesan kesalahan.
sumber
Coba ini
npm install bson
dannpm update
sumber
Anda tidak boleh mengubah file di folder perpustakaan NODE_MODULES.
File-file itu adalah hasil dari
npm install
perintah.Pada dasarnya, saya pikir untuk pengguna Windows - cara yang benar adalah menggunakan VM. Itu yang saya lakukan ketika saya bekerja dari rumah.
Semua yang Anda butuhkan:
for CentOS: yum install gcc gcc-c++ make openssl-devel
for Debian/Ubuntu: apt-get install build-essential
dan kemudian
npm install
atau, jika Anda sudah melakukannya -npm update
sumber
Solusi terbaik bagi saya adalah meningkatkan dari node-mongodb 1.x ke 2.x.
sumber
Saya menyadari bahwa utas ini berumur 1 tahun ke atas, tetapi itu membantu saya, meskipun dengan modul yang berbeda.
Saya menginstal luwak-post-findv0.0.2 dan masalah ini dimulai. Untuk memperbaikinya, saya menggunakan saran dan menavigasi ke \ node_modules \ mongoose-post-find \ node_modules \ bson \ ext dan membuka file index.js.
File dimulai dengan blok coba-coba yang mencoba meminta versi bson yang benar
ini adalah versi yang diperbaiki. Apa yang terjadi adalah ia mencoba memuat bson dari ../build/Release/bson, tidak dapat menemukannya dan jatuh ke tangkapan. Ada yang mencoba memuat bson lagi dari ../build/Release/bson dan tentu saja gagal. Jadi saya mengubah jalur di tangkapan untuk melihat ../browser_build/bson. Ini menyelesaikan kesalahan.
Saya memposting ini untuk kelengkapan.
sumber
Saya memiliki masalah yang sama setelah memutakhirkan versi ubuntu ke 16.04. Saya memecahkan dengan cara ini, semoga membantu.
sumber
Dalam kasus kami, alasan bahwa versi c ++ 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 menyarankan bahwa proxy mungkin menjadi masalah. Mengatur variabel lingkungan http_proxy dan https_proxy menyelesaikannya.
Maaf telah membangkitkan kembali komentar tentang ini, tetapi saya ingin memposting ini untuk orang lain yang mengenai ini di masa depan karena utas ini sangat membantu dalam menyelesaikan masalah kami.
sumber
Mencoba npm instal luong --msvs_version = 2012, jika Anda memiliki beberapa Visual yang diinstal, itu berhasil untuk saya
sumber
Pertama copy
bson.js
kode daribrowser_build folder
kedua buat file baru
bson.js
dan tempel kodeketiga simpan file baru di dekat dalam
index.js
.sumber
Saya bekerja dengan OS Windows 8.1 dan saya memiliki masalah yang sama. Sumber masalahnya adalah versi Python. Saya menemukan masalah asal meninjau file ... \ node_modules \ mongodb \ node_modules \ mongodb-core \ node_modules \ kerberos \ builderror.log.
Saya menginstal versi Python yang benar (2.7.9 untuk 64 bit) dan itu menyelesaikan masalah saya.
Catatan: Versi python yang dipasang harus sama atau lebih besar dari 2.7.5 dan kurang dari 3.0.0
sumber
Saya sudah mencoba
bson = require('../browser_build/bson');
tetapi akhirnya mengalami kesalahan lainAkhirnya saya memperbaiki masalah ini hanya dengan
npm update
, ini akan memperbaiki modul bson di luwak.sumber
Jadi, saya memiliki masalah yang sama dan itu terjadi maka URL mongoDB yang ditentukan tidak ada. Jadi, untuk memperbaikinya, Anda harus membuka folder ".. \ server \ config \ environment" dan mengedit file "development.js" di tautan ke mongoDB.
Contoh:
Jadi, ubah "uri: 'mongodb: // localhost / test2-dev'" menjadi beberapa jalur nyata ke database mongoDB Anda.
Saya akan senang jika posting saya akan membantu seseorang ...
sumber
temukan di modul npm mongodb ..node_modules \ mongodb \ node_modules \ bson \ ext \ index.js
dan ubah path ke versi js di catch block
untuk
bson = require('../browser_build/bson');
sumber