C ++ bson एक्सटेंशन लोड करने में विफल


185

कुल नोड यहाँ। मैं एक नमूना नोड एप्लिकेशन सेट करने का प्रयास कर रहा हूं, लेकिन निम्न त्रुटि हर बार जब मैं चलाने की कोशिश करता हूं तो पॉप अप होता रहता है:

नोड ऐप

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)

3
त्रुटि है failed to connect to, इसलिए मुझे लगता है कि bsonसंदेश असंबंधित हो सकता है और वास्तव में कोई फर्क नहीं पड़ता। क्या आप सुनिश्चित हैं कि आपकी मैंगो कनेक्शन सेटिंग्स सही हैं?
loganfsmyth

1
मजेदार कहानी मुझे केवल एक विंडोज़ मशीन पर यह त्रुटि मिलती है ... havent ने नोड-जिप स्थापित करने की कोशिश की, लेकिन ive ने लगभग हर चीज की कोशिश की और अभी भी त्रुटि हो रही है। और
चॉकोलेटली वॉन्ट

क्या JS BSON कोड लगभग C ++ की तरह तेज़ नहीं है? यदि हां, तो क्या यह वास्तव में एक समस्या है?
UpTheCreek

इस मुद्दे का सामना करने वाले नए iojs पर लोगों के लिए, मैंने इस मुद्दे को ट्रैक करने के लिए एक टिकट खोला है: github.com/mongodb/js-bson/issues/136
bitinn

नोट: मैं अपने mvc ढांचे के रूप में कीस्टोन.जेएस का उपयोग कर रहा हूं। मेरे लिए, आप "../build/Release/bson" को "../browser_build/bson" में बदल दें। यदि आप ऊपर जाते हैं, तो आप browser_build फ़ोल्डर देखते हैं।
प्रणय पंत

जवाबों:


201

मुझे लगता है कि आपके पास अपने मोंगोडब लाइब्रेरी स्थापित करने के दौरान उपलब्ध उपकरण नहीं थे। मैं आपको सुझाव देता हूं

xcode-select --install(एक मैक पर) या sudo apt-get install gcc make build-essential(ubuntu पर)

और भाग खड़ा हुआ

rm -rf node_modules
npm cache clean
npm install

या सिर्फ ntm अद्यतन @tobias टिप्पणी (बिल्ड-आवश्यक स्थापित करने के बाद) पर आधारित

npm update

2
+1। मुझे बस 3 अंतिम पंक्तियाँ करनी थीं - मुझे लगता है कि मेरा निर्माण नहीं किया गया था क्योंकि यह mongoskinमॉड्यूल के हिस्से के रूप में आया था ।
मैट ब्राउन

2
वाह! यह sudo apt-get install gcc make build-essentialटिप मेरे द्वारा देखे गए सबसे अच्छे Node.js + Ubuntu विकास युक्तियों में से एक है। यदि आप वेब एप्लिकेशन डेवलप करने के लिए उपयोग किए जाते हैं और सिर्फ Ubuntu पर Node.js के साथ उपयोग कर रहे हैं तो यह एक पूर्ण गेम-चेंजर है।
चारनी काये

3
स्थापित करने का कारण gccऔर makeसाथ क्या है build-essential? उत्तरार्द्ध अन्य दो पर निर्भर करता है, इसलिए वे वैसे भी स्थापित होने जा रहे हैं ( package.ubuntu.com/trusty/build-essential )। करना sudo apt-get install build-essentialपर्याप्त होना चाहिए।
सेर्गेई

8
खिड़कियों पर कैसे ?? मुझे अपने विंडोज़ कमांड प्रॉम्प्ट C: \ Users \ me> नोड C: \ Users \ me \ Desktop \ नोडप्रोजेक्ट \ datagen.js {[त्रुटि: मॉड्यूल नहीं मिल रहा है ../build/Release/bson 'पर कुछ ऐसा मिल रहा है ] कोड: 'MODULE_NOT_FOUND'} js-bson: शुद्ध JS संस्करण का उपयोग करके c ++ bson एक्सटेंशन को लोड करने में विफल रहा, {[त्रुटि: मॉड्यूल ढूँढ नहीं सकता है ../build/Release/bson ': कोड:' MODULE_NOT_FOUND '} js-bson: C + bson एक्सटेंशन को लोड करने में विफल, शुद्ध JS वर्जन को सर्वर से सही ढंग से कनेक्ट करने के लिए
ULLAS K

1
खिड़की मशीनों के बारे में क्या :(
जेमी हटबर

100

मैंने बस यही हल किया।

जब आप mpmoose मॉड्यूल को npm द्वारा स्थापित करते हैं, तो इसमें फ़ोल्डर में बिल्ट बन्स मॉड्यूल नहीं होता है। फ़ाइल में node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js, लाइन बदलें

bson = require('../build/Release/bson');

सेवा

bson = require('bson');

और फिर npm का उपयोग करके bson मॉड्यूल स्थापित करें।


36
क्या नोड_मॉड्यूल निर्देशिका के अंदर चीजों को बदलना एक अच्छा विचार है? यह भंगुर लगता है
डगलस फर्ग्यूसन

6
@ डगलस फर्ग्यूसन वास्तव में नहीं। यदि आप एक नोड_मॉडल को संपादित करते हैं, तो मैं सुझाव देता हूं कि आप रेपो को फोर्क करें और npm / bower के माध्यम से अपने संशोधित मॉड्यूल को स्थापित करें।
क्रिस्टोफर मार्शल

4
इस जवाब ने काम कर दिया। देवों पर, कृपया इसे ठीक करें!
स्टीव के

23
यह हैक है, फिक्स नहीं।
आशीष

10
यह कोई हल नहीं है। उसी परिणाम के साथ आप केवल उन स्ट्रिंग्स को हटा सकते हैं जो त्रुटि प्रिंट करता है। यह त्रुटि प्रकट होती है क्योंकि bson के लिए देशी c ++ प्लगइन नहीं मिला है और इस मामले में js प्राप्ति का उपयोग वैसे भी किया जाएगा।
एलेंडॉर्फ

36

मैंने रसभरी (रास्पबेरी के लिए डेबियन) पर "सी + बॉन एक्सटेंशन लोड करने में विफल" होने के मुद्दे को हल किया है:

npm install -g node-gyp

और फिर

npm update

3
मैंने अपनी समस्या को केवल चलाने के द्वारा हल किया npm update, बिना कुछ और स्थापित किए।
मैल्कमऑनियन

27

मैं इसे हल करने में असमर्थ था

अब तक। सबसे पहले आपके पास प्रदीप महदेवू द्वारा उल्लिखित सिस्टम पैकेज होना चाहिए। वो है:

xcode-select --install (on a mac) 

या

sudo apt-get install gcc make build-essential (on ubuntu)

फिर मैंने नोड-जिप स्थापित किया है

npm install -g node-gyp 

जैसे datadracer ने कहा लेकिन उनके द्वारा सुझाया गया npm अपडेट भी जोखिम भरा है। यह सभी मॉड्यूल को अपडेट करता है, जो खतरनाक हो सकता है (कभी-कभी एपीआई संस्करणों के बीच बदलता है)।

मेरा सुझाव है कि node_modules / mongodb / node_modules / bson निर्देशिका और वहां से उपयोग में जा रहा हूं

node-gyp rebuild

इससे मेरे लिए समस्या हल हो गई।


5
खिड़कियों के बारे में क्या :(
जेमी हटबर

@ जैमीहटबर वीएस 2013 स्थापित करें
राहिल वज़ीर

मैं एक 512MB RP1 पर डाइटपीआई की रिलीज पर ऐसा कर रहा था । बस उल्लेख करना चाहता था कि मुझे पायथन ( apt-get install python) स्थापित करना था और फिर node_modules/mongoose/node_modules/mongodb/node_modules/bson/रन के भीतर से make। इसने बनाया Release/bson.node
स्टेटबॉय

20

एक आम समस्या यह है कि नोड-जिप के लिए अजगर 2.x की आवश्यकता होती है और यदि आपके सिस्टम के pythonअंक 3.x पर हैं, तो यह bsonचेतावनी के बिना, संकलन करने में विफल हो जाएगा । आप pythonअपने npm config में एक वैश्विक कुंजी सेट करके इसे ठीक कर सकते हैं जो आपके सिस्टम पर 2.x निष्पादन योग्य की ओर इंगित करता है। उदाहरण के लिए, आर्क लिनक्स पर:

npm config -g set python "/usr/bin/python2"

19

जीत 8.1 पर

ऐसा लगता है कि मैंने अपनी package.jsonफ़ाइल में गलत संस्करण का उपयोग किया है ।

मैं लाइन से हटाया "mongoose" : "^3.8.15"से package.json

CLI:

npm install mongoose --save

अब यह कहता "mongoose": "^4.0.6"है package.jsonऔर मेरे पास जो त्रुटि थी वह चली गई है।


धन्यवाद! आपने मुझे कीबोर्ड पर अनगिनत घंटे सिर काटने से बचाया। यह अंतिम और एकमात्र समाधान था जो खिड़कियों पर काम करता था। मुद्दा यह था कि मैं मोंगोज़ का एक संस्करण 3.x चला रहा था जो मेरे पीसी पर नवीनतम मोंगोडब इंस्टाल के साथ असंगत दिखाई दिया।
ChallengeAccepted

यह अंततः मुझे उबंटू पर भी चल रहा है।
जेसन केनली

हाँ, मैक पर भी चल रहा है। धन्यवाद!
जॉस

बहुत बहुत धन्यवाद! Microsoft के "यू हैव गॉट डॉक्युमेंट्स! ए मोंगडॉब जंप स्टार्ट" ट्रेनिंग सेशन के बाद और इसमें वही त्रुटि थी, जो केवल मोंगोडब पैकेज से संबंधित थी - उस एक के लिए उपरोक्त चरण और पर्याप्त रूप से पर्याप्त है, यह अब चल रहा है! :)
फर्नांडो मद्रयुग

11

मैं Ubuntu 14.04 चला रहा हूं और इसे ठीक करने के लिए मुझे नोड के लिए एक सिम्लिंक बनाना था , जो यहां बताए गए अनुसार नोडज के लिए इंगित करना है:

ubuntu 12.04 पर नोडज बनाम नोड्ज

एक बार जब मैंने किया कि मैंने इन आदेशों को फिर से चलाया:

rm -rf node_modules
npm cache clean
npm install

महान एंथनी! मैं Ubuntu 14.04 पर भी चल रहा हूं और आपके सुझाव ने मेरे लिए समस्या हल कर दी है। बिल्ड-एसेंशियल इंस्टॉल करना और हर चीज को फिर से इंस्टॉल करना पर्याप्त नहीं है: मुझे 'नोड' ln भी जोड़ना था।
फ्रेंको

8

तो मेरे मामले में, मैंने पहली बार इस निर्देशिका / नोड_मॉड्यूल्स / मोंगोज़ / नोड_मॉड्यूल्स / के तहत जांचने की कोशिश की , बस यह पुष्टि करने के लिए कि मेरे पास बॉन मॉड्यूल है। मुझे पता चला कि मेरे पास यह पहली जगह में नहीं है, फिर मैं बस चलाता हूं

npm स्थापित बॉन 

और फिर

एनपीएम अपडेट

सब मिल गया। उबंटू में रोया और परीक्षण किया गया।


मेरे लिए भी काम किया है, लेकिन मैंने make/devel/node_modules/bson/
एक्सबुक

1
मेरे लिए काम किया। Npm कैश की सफाई नहीं की। वास्तव में, मैंने जो कुछ भी किया था / नोड_मॉड्यूल / मैंगोज़ चला थाnpm install bson
रिचीरिच

8

सिर्फ मैं यह भी कहना चाहता था कि त्रुटि थी

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

लेकिन अन्य त्रुटियों में से कोई भी नहीं। मैं सब कुछ करने की कोशिश की और mongodb ड्राइवरों को बताता है कि मैं पैकेज में निर्दिष्ट कर रहा था। Json फ़ाइल MongoDB के मेरे संस्करण के साथ असंगत थी। मैंने इसे अपने नवीनतम संस्करण में बदल दिया जो (1.4.34) था और इसने काम किया !!!


वास्तव में npm स्थापित mongodb @ नवीनतम मेरे लिए समस्या हल
tam.teixeira


8

मैंने आखिरकार अपने मोंगोडब निर्भरता संस्करण को ~ 2.0.36 में अपडेट करके इस त्रुटि को ठीक किया package.json

 "dependencies": {
    "consolidate": "~0.9.1",
    "express": "3.x",
    "mongodb": "~2.0.36",
    "mongoose": "^4.1.12"
  }

मेरा थोड़ा संबंधित था, मैं मंगोल का उपयोग कर रहा था, और मोबो डीबी नहीं ।
ब्रैड बी

5

दुर्भाग्य से, उपरोक्त सभी उत्तर केवल आधे सही हैं .. यह पता लगाने के लिए एक लंबा समय लिया ..

एनजीओ थ्रो चेतावनी के माध्यम से मैंगोज बोन्स स्थापित करें और त्रुटि का कारण बने ...

npm install -g node-gyp

git clone https://github.com/mongodb/js-bson.git
cd js-bson
npm install
node-gyp rebuild

यह जादू की तरह काम करता है !!


यह त्रुटि के साथ विफल रहता है:$ 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
थॉमस मोडेनिस

4

मेरे लिए यह केवल मेरी एपीआई निर्देशिका में इन कमांड को चलाने के लिए ले जाता है:

rm -rf node_modules
npm cache clean 
npm install

4

मैं अभी भागा:

sudo npm install bson

तथा

sudo npm update

और सब ठीक हो गया।


आपको sudo अधिकारों के साथ npm चलाने से बहुत अधिक बचना चाहिए।
लोगनहुकिन्स

कुछ भी है कि आप सूडो अंतरिक्ष में होने से बच सकते हैं, आपको चाहिए। मुझे नहीं लगता कि यह किसी भी गंभीर मुद्दों का कारण होगा, यह सिर्फ एक अच्छा अभ्यास है। यहां एक लेख है जो मदद कर सकता है (जॉन पापा को पसंद करने के अलावा इसके लिए वाउच नहीं कर सकता है)। johnpapa.net/how-to-use-npm-global-without-sudo-on-osx
loganhuskins

3

बॉन एक्सटेंशन संदेश सिर्फ एक चेतावनी है , मैं इसे अपने नोडज एप्लिकेशन में हर समय प्राप्त करता हूं।

जाँच करने के लिए चीजें:

  • MongoDB उदाहरण : क्या आपके पास MongoDB उदाहरण चल रहा है?
  • कॉन्फ़िगर करें : क्या आपने अपने MongoDB उदाहरण में Mongoose को सही ढंग से कॉन्फ़िगर किया है? मुझे संदेह है कि आपका कॉन्फ़िगरेशन गलत है, क्योंकि त्रुटि संदेश आपके मोंगोडब सर्वर होस्ट नाम के लिए एक बहुत ही अजीब स्ट्रिंग को बाहर निकालता है।

यह उपयोगी जानकारी थी। इसके साथ ही मेरे रास्ते से मुझे पता चला कि मैं डेटाबेस के लिए वास्तविक मोंगॉडब उपयोगकर्ता जानकारी के साथ मोंगोलैब उपयोगकर्ता खाता जानकारी को मिला रहा हूं।
अजा

हम्म, मैं एक ही मुद्दे में चल रहा हूँ। सब कुछ मेरे स्थानीय परीक्षण सर्वर पर काम कर रहा था और मैं mongoHQ का उपयोग कर रहा हूं, इसलिए स्थानीय मानगो उदाहरण की कोई आवश्यकता नहीं है, और क्या गलत हो सकता है?
करोह

उस बारे में भूल जाओ, नीचे प्रदीप का जवाब हल है कि :)
करोह

3

मैंने CentOS पर इस समस्या को ठीक किया

  • sudo yum groupinstall "विकास उपकरण"
  • sudo npm स्थापित -g नोड-जिप
  • rm -r नोड_मॉड्यूल्स
  • npm कैश साफ
  • npm स्थापित करें

@ थेजा ने कहा कि त्रुटि केवल विंडोज मशीन पर होती है।
पावेल वेसेलोव

3

मैंने इसे 10 की लाइन बदलकर ठीक किया:

/node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js 

से:

bson = require('../build/Release/bson');

सेवा:

bson = require('bson');

3
यह शुद्ध js समाधान का उपयोग करने के लिए पैकेज बना रहा है, मुझे लगता है
बोलेरोव्ट

मैं 100% निश्चित नहीं हूं, लेकिन मैं समझ गया हूं कि इससे बिल्कुल परहेज है।
jorgefpastor

2

मुझे यह समस्या भी आई और इसने मेरे सत्रों के काम नहीं करने का कारण बना। लेकिन तोड़ने के लिए भी नहीं ...

मैंने एक मोंगोज़ कनेक्शन का उपयोग किया।

मेरे पास यह था:

var mongoose = require('mongoose');
var express = require('express');
var cookieParser = require('cookie-parser');
var expressSession = require('express-session');
var MongoStore = require('connect-mongo')(expressSession);
...
var app = express();
app.set('port', process.env.PORT || 8080);
app.use(bodyParser);
mongoose.connect('mongodb://localhost/TEST');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
  console.log('MongoDB connected');
});


app.use(cookieParser());
app.use(expressSession({
  secret: 'mysecret',
  cookie: {
    maxAge: null,
    expires: moment().utc().add('days',10).toDate(),// 10 dagen
  },
  store: new MongoStore({
  db: 'TEST',
  collection: 'sessions',
}),

बहुत सीधा है। लेकिन req.session हमेशा खाली रहता था।

rm -rf node_modules
npm cache clean
npm install

की चाल चली। देखो तुम अपने पैकेज में एक 'mongodb' नहीं है। बस मानगो और कनेक्ट-मोंगो।


2

यहां बताया गया है कि मैंने उबंटू पर समस्या कैसे तय की:

  1. ln -s /usr/bin/nodejs /usr/bin/node
  2. npm install node-gyp
  3. cd node_modules/mongodb/node_modules/bson
  4. node-gyp rebuild

@Mbochynski उत्तर से प्रेरित, लेकिन मुझे पहले एक प्रतीकात्मक लिंक बनाना था, अन्यथा पुनर्निर्माण विफल हो गया।


2

मैं एक ही समस्या के इतने सारे विकल्पों की कोशिश कर रहा था, लेकिन आखिरी npm intallमें मेरे मतलब में ऐप फ़ोल्डर ने काम किया।


2

मुझे यह समस्या थी क्योंकि मैं अपने Git रिपॉजिटरी में नोड_मॉडल फ़ोल्डर को शामिल कर रहा था । जब मैंने दूसरे सिस्टम पर नोड_मॉडल को फिर से बनाया तो उसने काम किया। उनमें से एक लिनक्स चला रहा था, दूसरा ओएस एक्स। शायद उनके पास अलग-अलग प्रोसेसर आर्किटेक्चर भी थे।


1

मेरे EC2 उदाहरण पर भी यही समस्या थी। मुझे लगता है कि प्रारंभिक कारण यह था कि जब मैं नेवला स्थापित किया था तो मेरे पास एक नोड उदाहरण था। मैंने नोड सेवा बंद कर दी और फिर चला

sudo npm update 

मेरे नोड प्रोजेक्ट के शीर्ष स्तर फ़ोल्डर के अंदर। इससे समस्या ठीक हो गई और सब कुछ नया जैसा हो गया


1

मैं वर्चुअल मशीन (योनि) साझा फ़ोल्डर पर नोड चलाने की कोशिश कर रहा था। वह एक समस्या थी। मेरी मेजबान मशीन विंडोज है, विंडोज पर नोड स्थापित किया गया है और एक आकर्षण की तरह काम किया है। इसलिए यदि आप वर्चुअल मशीन का उपयोग कर रहे हैं, तो होस्ट मशीन पर नोड सर्वर चलाने की कोशिश करें।


1

मुझे बस यही समस्या थी और सचमुच मेरे लिए कुछ भी काम नहीं आया। त्रुटि दिखा रहा था kerberosसमस्या पैदा कर रहा है और यह mongooseनिर्भरता में से एक था । चूंकि मैं उबंटू पर हूं, मैंने सोचा कि विश्व स्तर पर स्थापित पैकेजों के /usr/lib/node_modulesमाध्यम से - sudoऔर उन लोगों के बीच कहीं और अनुमति की समस्या हो सकती है , जो उपयोगकर्ता स्थान पर हैं।

मैंने mongooseविश्व स्तर पर स्थापित किया - sudoबेशक, और सब कुछ उम्मीद के मुताबिक काम करना शुरू कर दिया।

पुनश्च kerberosपैकेज अब विश्व स्तर पर भी बगल में स्थापित है mongoose, हालांकि मुझे याद नहीं है कि मैंने इसे जानबूझकर किया था - जबकि मैं समस्या को हल करने की कोशिश कर रहा था, या अगर यह शुरुआत से ही था।


1

मैं डॉकर पर सेंटोस 7 के साथ काम कर रहा हूं, और उसी समस्या का सामना कर रहा हूं।

चारों ओर देखने के बाद, और कई प्रयास करें, मैंने मोंगोडब, और मोंगोडब-सर्वर स्थापित करके इस समस्या को ठीक किया

yum install mongodb mongodb-server

मुझे नहीं लगता कि यह न्यूनतम कंटेनर का उत्पादन करने का सबसे अच्छा तरीका है। लेकिन मैं गुंजाइश को निम्नलिखित पैकेजों में सीमित कर सकता हूं

==============================================================================================================
 Package                          Arch              Version                          Repository          Size

==============================================================================================================
Installing:
 mongodb                          x86_64            2.6.5-2.el7                      epel                57 M
 mongodb-server                   x86_64            2.6.5-2.el7                      epel               8.7 M
Installing for dependencies:
 boost-filesystem                 x86_64            1.53.0-18.el7                    base                66 k
 boost-program-options            x86_64            1.53.0-18.el7                    base               154 k
 boost-system                     x86_64            1.53.0-18.el7                    base                38 k
 boost-thread                     x86_64            1.53.0-18.el7                    base                56 k
 gperftools-libs                  x86_64            2.1-1.el7                        epel               267 k
 libpcap                          x86_64            14:1.5.3-3.el7_0.1               updates            137 k
 libunwind                        x86_64            1.1-3.el7                        epel                61 k
 snappy                           x86_64            1.1.0-3.el7                      base                40 k


1

मैं भिक्षु पैकेज को अनइंस्टॉल और पुनर्स्थापित करके हल करने में सक्षम था। प्रारंभिक रूप से लग रहा था कि एक भ्रष्ट मंगोल / बॉन निर्भरता थी।


1

Followint @ user1548357 मैंने मॉड्यूल फ़ाइल को स्वयं बदलने का निर्णय लिया। इसलिए नीचे दी गई मान्य टिप्पणियों द्वारा बताई गई समस्याओं से बचने के लिए मैंने अपने बदलावों को एक बाद की स्क्रिप्ट में शामिल किया ताकि मैं इसे सेट कर सकूं और इसे भूल जाऊं और आश्वस्त हो जाऊं कि यह तब चलेगा जब मेरे मॉड्यूल इंस्टॉल हो जाएंगे।

// package.json
"scripts": {
    // other scripts
    "postinstall": "node ./bson.fix.js"
},

और स्क्रिप्ट है:

// bson.fix.js
var fs = require('fs');
var file = './node_modules/bson/ext/index.js'
fs.readFile(file, 'utf8', function (err,data) {
  if (err) {
    return console.log(err);
  }
  var result = data.replace(/\.\.\/build\/Release\/bson/g, 'bson');
  fs.writeFile(file, result, 'utf8', function (err) {
     if (err) return console.log(err);
     console.log('Fixed bson module so as to use JS version');
  });
});

1

आसानी से समस्या को किक आउट करें, बस इस लाइन को जोड़ने की कोशिश करें और ब्लॉक पथ को पकड़ें: node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js

bson = require('bson');  instead 

bson = require('./win32/ia32/bson');
bson = require('../build/Release/bson'); 

बस इतना ही!!!


नमस्कार, आपके जवाब के लिए धन्यवाद। कृपया लोगों को पढ़ने के लिए आसान बनाने के लिए कोड उदाहरणों पर प्रारूपण का उपयोग करें।
F_SO_K

1

केवल एक चीज जो मुझे विंडोज 7 (x64) पर मदद करती है: https://stackoverflow.com/a/29714359/2670121

X32 संस्करणों के साथ नोड और अजगर को पुनर्स्थापित करें।
मैंने इस त्रुटि के साथ बहुत समय बिताया:

C ++ bson एक्सटेंशन लोड करने में विफल

और अंत में, जब मैंने मॉड्यूल node-gyp(देशी एडोनों के निर्माण के लिए) स्थापित किया और यहां तक ​​कि विजुअल स्टूडियो के साथ विंडोज़ एसडीके स्थापित किया - नोडज इकट्ठे मॉड्यूल को पहचान नहीं पाएbson.node रूप में को । पुनः स्थापित करने के बाद समस्या दूर हो गई है।

फिर, इस त्रुटि का क्या अर्थ है?

वास्तव में, यह भी त्रुटि नहीं है। आप अभी भी आम का उपयोग कर सकते हैं। लेकिन इस मामले में, bsonमॉड्यूल की तेजी से मूल प्राप्ति के बजाय , आपको मिलाjs-realization , जो धीमा है।

मैंने कई युक्तियाँ देखीं: "नोड_मॉड्यूल्स के अंदर गहरे पथ को संपादित करें ..." - जो पूरी तरह से बेकार है, क्योंकि यह समस्या को हल नहीं करता है, लेकिन सिर्फ त्रुटि संदेशों को बंद कर देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.