2012-08-31 9 views
5

कोड:मोंगोस 3.1.0: कनेक्शन.db.dropDatabase (कॉलबैक) में कॉलबैक क्यों नहीं बुलाया जाता है और डीबी ड्रॉप्ड नहीं किया जाता है?

var connection = mongoose.createConnection('mongodb://localhost:9000/' + databaseName); 
connection.db.dropDatabase(function(err){ 
    // never reach this point! 
    debugger; 
    console.log(err); 
    console.log('-------------->Dropped database: ' + databaseName); 
}); 

अगर मैं connection.open कि यह कहना है कि यह पहले से ही आ रही है और करने के लिए कोई एकाधिक कॉल एक ही कनेक्शन के लिए समर्थन कर रहे "खुला"।

यहां तक ​​कि इस

var conn = mongoose.createConnection('mongodb://localhost',databaseName, 9000, {}, function(){ 
    console.log('created'); // is reached 
    conn.db.dropDatabase(callback); // but the callback is not called anyway 
}); 

समस्या क्या है काम नहीं करता है? ("नेवला": "3.1.0") डेटाबेस भी गिरा नहीं है ... धन्यवाद

उत्तर

3
var connection = mongoose.createConnection('mongodb://localhost:9000/' + databaseName, function(err){ 
     connection.db.dropDatabase(function(err){ 
         // now it works! 
        }) 
    }); 

समस्या यह है कि dropDatabase आदेश पंक्तिबद्ध नहीं कर रहा था और नहीं चला जब कनेक्शन खोला है। तो अगर मैंने createConnection पर कॉलबैक का उपयोग किया तो यह काम करता है और इसके बाद डीबी ड्रॉप करता है, यह काम करता है!

+0

क्या आपने पहले से ही इसे अपनी मूल पोस्ट का 'काम नहीं किया' में भी कोशिश नहीं की थी? – JohnnyHK

+0

हाँ, यह अजीब है। मुझे नहीं पता कि अब यह क्यों काम करता है: एस –

+0

ठीक है, थोड़ा सा दुविधा है: "प्रश्न" में मुझे डीबी को "उत्तर" जैसे स्ट्रिंग में संयोजित करने के बजाय तर्क के रूप में पारित किया गया है। मैं जो जानता हूं उससे वह चाल थी। –

संबंधित मुद्दे