Db.open मोंगोडब से कनेक्शन खोलता है और खुद को एक संदर्भ देता है। स्रोत कोड के लिए यहां देखें:https ://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/db.js#L245
आप बस इतना चाहते हैं कि अपने एक्सप्रेस ऐप को उसके पोर्ट पर सुनने और अनुरोध प्राप्त करने से रोकें, जब तक कि आपका मोंगोडब से कनेक्शन स्थापित नहीं हो जाता।
तो आप यह क्या कर सकते हैं:
var mongodb = require("mongodb"),
express = require("express"),
mongoServer = new mongodb.Server('localhost', 27017),
dbConnector = new mongodb.Db('example', mongoServer),
db;
var app = new express();
app.get('/products', function(req, res, next) {
db.collection('products', function(err, collection) {
if (err) next(new Error(err));
collection.find({}, function(err, products) {
res.send(products);
});
});
});
db_connector.open(function(err, opendb) {
if (err) throw new Error(err);
db = opendb;
app.listen(3000);
});
हालांकि मुझे इस बारे में निश्चित नहीं है कि क्या यह एक अच्छा विचार है। यदि कोई कनेक्शन टूट गया है या आपने अपनी मोंगोडब प्रक्रिया को पुनरारंभ किया है तो यह समाधान आपको अपने कनेक्शन को फिर से बनाने की अनुमति नहीं देता है। इसलिए जब उपरोक्त काम कर सकता है, तो यह एक बेहतर विचार हो सकता है कि एक ऐसी विधि बनाई जाए जो मोंगोडब से कनेक्शन के निर्माण को लपेट ले।