2016-07-23 14 views
9

सवाल सरल है, लेकिन इंटरनेट और पाउचड स्रोत के माध्यम से एक संपूर्ण खोज के माध्यम से मुझे यह पता लगाने के लिए कोई फ़ंक्शन नहीं मिला कि स्थानीय डेटाबेस मौजूद है या नहीं।पाउचडीबी जांचें कि क्या स्थानीय डेटाबेस मौजूद है

इसके लिए उपयोग केस यह जांचना होगा कि कोई स्थानीय डेटाबेस पहले से मौजूद है या नहीं और फिर एक सफल लॉगिन वैकल्पिक बनाएं।

सादर

+0

अभी भी कोई समाधान नहीं है? – Costa

उत्तर

5

वहाँ वास्तव में एक skip_setup विकल्प उपलब्ध है।

जैसा कि the documentation में बताया गया है, डिफ़ॉल्ट रूप से, PouchDB जांच करेगा कि डेटाबेस मौजूद है या नहीं और इसे बनाने का प्रयास करें यदि यह अभी तक मौजूद नहीं है। इस सेटअप को छोड़ने के लिए आप इस विकल्प को true पर सेट कर सकते हैं।

इस विकल्प के साथ सक्षम हैं तो आप जब आप उदाहरण के लिए डेटाबेस जानकारियां क्वेरी यदि डेटाबेस मौजूद नहीं है एक त्रुटि मिल जाएगा:

const db = new PouchDb('DB_URL_OR_NAME', { skip_setup: true }); 

db.info() 
    .then(() => { 
    // The database exists. 
    // Do something... 
    }) 
    .catch(e => { 
    // No database found and it was not created. 
    // Do something else... 
    }); 
+0

दिलचस्प। मैंने skip_setup के बिना जानकारी() की कोशिश की जिसने डेटाबेस बनाया। संयोजन को इंगित करने के लिए धन्यवाद। एक जादू की तरह काम करता है। – Mythli

+4

प्रलेखन में, यह कहा गया है कि यह विकल्प केवल दूरस्थ डेटाबेस के लिए उपलब्ध है और यह प्रश्न स्थानीय डेटाबेस के बारे में है। दुर्भाग्यवश मैंने स्थानीय विकल्प के साथ इस विकल्प को आजमाया और यह काम नहीं करता है। – akofman

+0

@akofman अभी भी कोई समाधान नहीं है? – Costa

4

रूप akofman ने कहा, skip_setup स्थानीय डेटाबेस के साथ काम नहीं करता। तो मुझे ऐसा करने का एकमात्र तरीका एक कामकाज है - यह देखने के लिए जांच कर रहा है कि नया डेटाबेस खाली है या फिर इसे तुरंत हटा रहा है। बेशक यह मदद नहीं करता है अगर प्रश्न में डेटाबेस मौजूद है लेकिन खाली है ...

const testdb = new PouchDB('testdb_name'); 

testdb.info().then(function (details) { 
if (details.doc_count == 0 && details.update_seq == 0) { 
    alert ('database does not exist'); 
    testdb.destroy().then (function() {console.log('test db removed');}); 
} 
else alert ('database exists'); 
}) 
.catch(function (err) { 
    console.log('error: ' + err); 
return; 
}); 
संबंधित मुद्दे