ऐसा लगता है कि मैं Node.js देशी ड्राइवर के साथ एक मोंगोडीबी कनेक्शन बंद नहीं कर सकता। जब मैं node replica.js
चलाता हूं तो स्क्रिप्ट कभी समाप्त नहीं होती है, इसलिए किसी कारण से कनेक्शन बंद नहीं किया जा सकता है।Node.js के साथ एक मोंगोडीबी कनेक्शन बंद नहीं कर सकता?
यहां कोड है। यह सेट एक प्रतिकृति है, लेकिन मुझे नहीं लगता कि यह एक समस्या है है:
var mongodb = require('mongodb')
, Db = mongodb.Db
, Server = mongodb.Server
, ReplSet = mongodb.ReplSet;
// Replica set
var replSet = new ReplSet([
new Server('localhost', 27017), // Primary
new Server('localhost', 27018), // Secondary
new Server('localhost', 27016), // Secondary
],
{ rs_name: 'replica', read_secondary: true }
);
var db = new Db('test', replSet, { native_parser: true, w: 1 });
// Opening
db.open(function (err, db) {
if (err) console.error(err);
db.close();
});
एक भी mongod उदाहरण से कनेक्ट हो रहा काम करता है ठीक, कनेक्शन बंद कर दिया हो और स्क्रिप्ट, समाप्त हो जाती है process.exit()
की जरूरत (robertklep ने सुझाव दिया) के बिना फोन:
var mongodb = require('mongodb')
, Db = mongodb.Db
, Server = mongodb.Server;
// Single instance
var server = new Server('localhost', 27017):
var db = new Db('test', server, { native_parser: true, w: 1 });
// Opening
db.open(function (err, db) {
if (err) console.error(err);
db.close();
});
मेरा दूसरा उदाहरण मजबूर किए बिना क्यों काम करता है, लेकिन मुझे प्रतिकृति सेट के साथ कनेक्शन को बंद करने की आवश्यकता है? – gremo
@Gremo आपको इसकी आवश्यकता नहीं है, लेकिन कुछ अप्रत्याशित चल रहा है। क्या कॉलबैक त्रुटि के बिना बुलाया जाता है? – JohnnyHK
कोई त्रुटि नहीं है। यहां तक कि 'बंद (सत्य)' का उपयोग करने से भी मदद नहीं मिलती है। आपका कोड "पूर्ण पूर्ण" प्रिंट करता है और यह कभी भी स्क्रिप्ट से बाहर नहीं निकलता है। मुझे 'CTRL + C' के साथ मजबूर होना जरूरी है। – gremo