npm इंस्टॉल करें mongoose विफल रहता है(केर्बेरोस और बीएसओ त्रुटियां)




kerberos bson (4)

मैं बस mongodb अनइंस्टॉल करें और फिर सफलतापूर्वक mongoose स्थापित करें।

npm uninstall mongodb --save
npm install mongoose --save

इसलिए मैं अपना नोड ऐप लॉन्च करने का प्रयास कर रहा हूं, लेकिन मेरे मोंगोडीबी इंस्टॉलेशन से उत्पन्न कुछ त्रुटियां हैं।

मेरे देव पर्यावरण के लिए चश्मा यहां दिए गए हैं:

नोड => 0.10.33 (nodejs.org से स्थापित)

npm => 1.4.28 (nodejs.org से स्थापित)

गिट => 2.1.3 (होमब्रीड)

mongodb => 2.6.5 (homebrewed)

यदि इससे कोई फर्क पड़ता है, तो मैं ट्यूटोरियल के हिस्से के रूप में मीन स्टैक कंकाल का भी उपयोग कर रहा हूं।

संक्षेप में, जब मैं $ node app.js का उपयोग करके अपना नोड ऐप चलाने की कोशिश करता हूं, तो मुझे निम्न प्रतिक्रिया मिलती है:

USER$ npm install mongoose

> [email protected] install /Users/USER/APP/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
  CXX(target) Release/obj.target/kerberos/lib/worker.o
  CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
  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
  SOLINK_MODULE(target) Release/kerberos.node: Finished

> [email protected] install /Users/USER/APP/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
  SOLINK_MODULE(target) Release/bson.node
  SOLINK_MODULE(target) Release/bson.node: Finished
[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])

मैंने builderror.log और builderror.log मॉड्यूल दोनों के लिए builderror.log फ़ाइलों की जांच की। हालांकि, दोनों खाली हैं।

मैंने पाया कुछ शोध से पता चलता है कि समस्या हो सकती है क्योंकि मेरे node-gyp स्थापना में कोई binding.gypbinding.gyp फ़ाइल नहीं है।

मेरे Node.js प्रोजेक्ट फ़ोल्डर के अंदर $ node-gyp configure करने का भी प्रयास किया। और यह मुझे मिली त्रुटि है:

gyp: binding.gyp not found (cwd: /Users/USER/APP) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/node-gyp/lib/configure.js:343:16)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:810:12)
gyp ERR! System Darwin 12.5.0
gyp ERR! command "node" "/usr/local/bin/node-gyp" "configure"
gyp ERR! cwd /Users/USER/APP
gyp ERR! node -v v0.10.33
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok

कोई विचार क्यों मुझे इन मुद्दों का सामना करना पड़ रहा है?

संपादित करें: बंदरगाह को उसी app.js फ़ाइल में पोर्ट सेट करने के बाद, जिस पर एक्सप्रेस सर्वर सुन रहा है (डुह), मुझे अधिक प्रतिक्रिया मिलती है कि मैं मोंगोस 3.9.4 का उपयोग कर रहा था, जो नवीनतम अस्थिर है mongoose रिहाई इसलिए मैंने मॉड्यूल को अपने पैकेज.जेसन में 3.8.18 पर सेट किया और मॉड्यूल को पुनर्स्थापित करने का प्रयास किया। मुझे एक ही त्रुटि मिली। हालांकि, अस्थिर रिलीज फीडबैक अब चला गया है।


मैंने वैश्विक दायरे में नोड-जीईपी स्थापित करके इसे ठीक कर दिया है। आशा करता हूँ की ये काम करेगा।

$ npm install -g node-gyp 

मैं $ node-gyp rebuild और $ node-gyp rebuild निर्देशिका में cd 'd के बाद, मैंने कमांड $ node-gyp rebuild और सही ढंग से संकलित नोड मॉड्यूल का उपयोग किया।

मेरी app.js फ़ाइल, मैंने निम्न पंक्तियों को बुलाया:

var app = express();
...
var Mongoose = require('mongoose');
var db = Mongoose.createConnection('localhost','database');

// all environments
app.set('port', process.env.PORT || 3000);

यह पोर्ट नंबर आपके डेटाबेस उदाहरण के बंदरगाह से अद्वितीय होना चाहिए।

एक अलग टर्मिनल विंडो में, अपने मोंगोडीबी को स्पूल करने के लिए $ mongod । एक बार इसे कॉल करने के बाद, एक और टर्मिनल विंडो में, आप $ mongo database कॉल करते हैं। यह आपके Node.js ऐप से कनेक्ट करने के लिए database नामक डेटाबेस उदाहरण बनाता है। अपनी मूल टर्मिनल विंडो में, $ node app.js कॉल करें और यह बिना किसी त्रुटि प्रतिक्रिया के चलाएगा।

मुझे जो त्रुटियां मिल रही थीं वे मोंगोस, मोंगोडीबी या उनकी किसी भी निर्भरता के गलत निर्माण का नतीजा नहीं थीं। त्रुटियां मोंगोडीबी के बारे में गलतफहमी का परिणाम थीं। ऐप के डेटाबेस कनेक्शन बनाने के लिए मोंगोडीबी को आपके Node.js ऐप से अलग प्रक्रिया के रूप में चलाना आवश्यक है।


लिनक्स डिस्ट्रो पर किसी के लिए यह सुनिश्चित करने के लिए कि आपके पास libkrb5-dev (या आपके डिस्ट्रो का समान पैकेज) स्थापित है। यह बासन और केर्बेरोस के साथ कई बिल्ड त्रुटियों का ख्याल रखेगा।





node-gyp