JavaScript Academy · पाठ

डेटाबेस खोलना

डेटाबेस और ऑब्जेक्ट स्टोर बनाइए।

पाठ 1, कुल 4 में से13 चरण

डेटाबेस खोलना, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

IndexedDB क्या है

IndexedDB ब्राउज़र में अंतर्निहित बड़े-क्षमता वाला, लेन-देन समर्थित डेटाबेस है। localStorage के विपरीत, जो छोटा, केवल स्ट्रिंग वाला और समकालिक है, यह संरचित वस्तुएँ संग्रहीत करता है, अनुक्रमणिकाओं का समर्थन करता है और अतुल्यकालिक रूप से काम करता है।

डेटाबेस खोलना

आप indexedDB.open(name, version) से डेटाबेस खोलते या बनाते हैं। यह एक अनुरोध वस्तु लौटाता है, जिसकी घटनाएँ सफलता या विफलता की सूचना देती हैं।

const request = indexedDB.open('notes-db', 1);

अनुरोध की घटनाएँ

किसी open अनुरोध में ऐसी घटनाएँ आती हैं जिन्हें आपको संभालना होता है:

  • onsuccess — डेटाबेस तैयार है
  • onerror — खोलना विफल रहा
  • onupgradeneeded — स्कीमा बनाना या अपग्रेड करना आवश्यक है
request.onsuccess = (e) => {
  const db = e.target.result;
  console.log('database opened');
};
request.onerror = (e) => {
  console.log('open failed:', e.target.error);
};

onupgradeneeded

onupgradeneeded तब चलता है जब डेटाबेस पहली बार बनाया जाता है या उसकी संस्करण संख्या बढ़ती है। यही वह एकमात्र स्थान है जहाँ आप स्कीमा बदल सकते हैं, जैसे ऑब्जेक्ट store और अनुक्रमणिकाएँ बनाना या हटाना।

request.onupgradeneeded = (e) => {
  const db = e.target.result;
  // create object stores here
};

ऑब्जेक्ट store

ऑब्जेक्ट store तालिका जैसा होता है: यह रिकॉर्ड का एक कंटेनर है। इसे onupgradeneeded के अंदर db.createObjectStore(name, options) से बनाएँ।

request.onupgradeneeded = (e) => {
  const db = e.target.result;
  db.createObjectStore('notes', { keyPath: 'id' });
};

keyPath

keyPath IndexedDB को बताता है कि प्रत्येक वस्तु का कौन-सा गुणधर्म उसकी प्राथमिक कुंजी है। संग्रहीत वस्तुओं में वह गुणधर्म होना चाहिए और कुंजियाँ अद्वितीय होनी चाहिए।

db.createObjectStore('users', { keyPath: 'email' });
// Each stored user object must have a unique 'email'.

स्वतः बढ़ने वाली कुंजियाँ

यदि आपकी वस्तुओं में कोई स्वाभाविक कुंजी नहीं है, तो autoIncrement: true से IndexedDB को एक कुंजी बनाने दें। प्रत्येक नए रिकॉर्ड को अगला पूर्णांक मिलता है।

db.createObjectStore('logs', {
  keyPath: 'id',
  autoIncrement: true
});
// id is assigned automatically on add().

मौजूदा store की जाँच

चूँकि onupgradeneeded हर संस्करण-वृद्धि पर चलता है, इसलिए दोबारा चलने पर होने वाली त्रुटियों से बचने के लिए निर्माण को db.objectStoreNames.contains से सुरक्षित करें।

request.onupgradeneeded = (e) => {
  const db = e.target.result;
  if (!db.objectStoreNames.contains('notes')) {
    db.createObjectStore('notes', { keyPath: 'id' });
  }
};

db संदर्भ बनाए रखना

onsuccess से मिली डेटाबेस वस्तु को सहेज लें, ताकि बाद के संचालन उसका उपयोग कर सकें। सभी पठन और लेखन इसी db उदाहरण के माध्यम से होते हैं।

let db;
request.onsuccess = (e) => {
  db = e.target.result; // reuse for transactions
};

अवरुद्ध open को संभालना

यदि किसी अन्य टैब में पुराना संस्करण खुला हुआ है, तो अपग्रेड blocked हो सकता है। onblocked को सुनें और उपयोगकर्ता से अन्य टैब बंद करने के लिए कहें।

request.onblocked = () => {
  console.log('Close other tabs to upgrade the database.');
};

खोलने की प्रक्रिया

IndexedDB खोलने के लिए: नाम और संस्करण के साथ open कॉल करें, onupgradeneeded में अपनी स्कीमा बनाएँ, फिर onsuccess में db प्राप्त करें। इसके बाद डेटा पढ़ने और लिखने के लिए लेन-देन चलाएँ।

त्वरित जाँच

डेटाबेस खोलने की अपनी समझ का परीक्षण करें।

पुनरावलोकन

आपने IndexedDB डेटाबेस खोलना सीखा:

  • indexedDB.open(name, version) एक अनुरोध लौटाता है।
  • ऑब्जेक्ट store केवल onupgradeneeded में बनाएँ।
  • keyPath प्राथमिक कुंजी तय करता है; autoIncrement कुंजियाँ बनाता है।
  • बाद में उपयोग के लिए onsuccess से मिला db सहेजें।
  • onerror और onblocked को संभालें।

अगला विषय, लेन-देन और रिकॉर्ड बनाने, पढ़ने, अद्यतन करने तथा हटाने की क्रियाएँ।

शुरुआत निःशुल्क

एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
59
पाठ
200

अक्सर पूछे जाने वाले प्रश्न

क्या “डेटाबेस खोलना” पाठ निःशुल्क है?

हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “डेटाबेस खोलना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“डेटाबेस खोलना” में मैं क्या सीखूँगा?

डेटाबेस और ऑब्जेक्ट स्टोर बनाइए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JavaScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या JavaScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JavaScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“डेटाबेस खोलना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस JavaScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर JavaScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. डेटाबेस खोलना
  2. लेन-देन और CRUD
  3. इंडेक्स और क्वेरी
  4. वर्ज़निंग और अपग्रेड
← JavaScript Academy पर वापस जाएँ