Sequelize एक Node.js ऑब्जेक्ट-रिलेशनल मैपर (ORM) है जो Oracle, PostgreSQL, MySQL, MariaDB, SQLite, आदि जैसे रिलेशनल डेटाबेस के लिए उपयोग में आसान API प्रदान करता है।
PostgreSQL एक व्यापक रूप से उपयोग किया जाने वाला ओपन-सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है जो अपनी व्यापक विशेषताओं, उत्कृष्ट सुरक्षा और मापनीयता के लिए प्रसिद्ध है।
PostgreSQL जावास्क्रिप्ट सहित कई प्रोग्रामिंग भाषाओं के साथ संगत है, जो इसे वेब और डेटा-संचालित अनुप्रयोगों के लिए एक आदर्श विकल्प बनाता है। यहां आप Sequelize का उपयोग करके Node.js में Postgres डेटाबेस सेट करना सीखेंगे।
चरण 1: निर्भरताएँ स्थापित करना
इससे पहले कि आप PostgreSQL का उपयोग कर सकें, आपको इसे अपने सिस्टम पर इंस्टॉल करना होगा। PostgreSQL डाउनलोड करने के लिए, नेविगेट करें पोस्टग्रेएसक्यूएल वेबसाइट और अपना ऑपरेटिंग सिस्टम चुनें। यदि आप macOS पर इस प्रक्रिया के दौरान समस्याओं का सामना करते हैं, तो चेक आउट करें MacOS पर PostgreSQL स्थापित करना.
वैकल्पिक रूप से, आप जैसे प्लेटफ़ॉर्म का लाभ उठाकर क्लाउड पर PostgreSQL का उपयोग कर सकते हैं एलीफेंटएसक्यूएल जो एक सेवा के रूप में PostgreSQL प्रदान करता है।
अगला, स्थापित करें सीक्वल निम्न आदेश चलाकर:
एनपीएम सीक्वेलाइज इंस्टॉल करें
फिर, नीचे कमांड चलाकर PostgreSQL डेटाबेस ड्राइवर स्थापित करें:
एनपीएम पीजी पीजी-एचस्टोर स्थापित करें
चरण 2: एक PostgreSQL डेटाबेस से जुड़ना
अपनी परियोजना की स्रोत निर्देशिका में, एक बनाएँ कॉन्फ़िग फ़ोल्डर। में कॉन्फ़िग फ़ोल्डर, एक बनाएँ db.js फ़ाइल। इस फ़ाइल में आपके Node.js एप्लिकेशन को PostgreSQL डेटाबेस से जोड़ने वाले सभी कोड होंगे।
अगला, अपने में db.js फ़ाइल, आयात अगली कड़ी से सीक्वल.
कॉन्स्ट {अनुक्रमित करें} = ज़रूरत होना("अनुक्रम");
अगला, आपको एक बनाने की आवश्यकता है अगली कड़ी उदाहरण। यह उदाहरण तर्क के रूप में डेटाबेस नाम, उपयोगकर्ता नाम और पासवर्ड जैसे कनेक्शन पैरामीटर लेता है। वैकल्पिक रूप से, यह तर्क के रूप में एकल कनेक्शन URI लेता है।
उदाहरण के लिए:
// कनेक्शन पैरामीटर
कॉन्स्ट अनुक्रम बनाना = नया अगली कड़ी('डेटाबेस', 'उपयोगकर्ता नाम', 'पासवर्ड')
// यूआरआई के साथ
कॉन्स्ट अनुक्रम बनाना = नया अनुक्रमित करें (प्रक्रिया.env. पोस्टग्रेएसक्यूएल_डीबी_यूआरआई)
इसके अतिरिक्त, यह कन्स्ट्रक्टर कॉन्फ़िगरेशन ऑब्जेक्ट को वैकल्पिक तर्क के रूप में लेता है।
अगला, नीचे दिए गए कोड को जोड़कर अपने सीक्वेलाइज़ कनेक्शन का परीक्षण करें db.js फ़ाइल:
कॉन्स्ट टेस्टडीबी कनेक्शन = async () => {
कोशिश {
इंतजार सीक्वलाइज़.ऑथेंटिकेट ();
सांत्वना देना।लकड़ी का लट्ठा("कनेक्शन सफलतापूर्वक स्थापित किया गया है।");
} पकड़ना (गलती) {
सांत्वना देना।गलती("डाटाबेस से कनेक्ट करने में अक्षम:", गलती);
}
};
उपरोक्त कोड ब्लॉक कॉल करता है सीक्वल.प्रमाणित करें () यह परीक्षण करने के लिए कि क्या कनेक्शन ठीक है और प्रिंट करता है "कनेक्शन सफलतापूर्वक स्थापित किया गया है।" सांत्वना देने के लिए अगर यह है। यदि कोई कनेक्शन त्रुटि है, तो यह त्रुटि के साथ "डेटाबेस से कनेक्ट करने में असमर्थ:" प्रिंट करता है।
अंत में, सीक्वलाइज़ उदाहरण निर्यात करें और testDbConnection समारोह।
मापांकनिर्यात = { वर्ग: अनुक्रमित करें, testDbConnection};
चरण 3: एक Sequelize मॉडल बनाना
अपनी परियोजना की स्रोत निर्देशिका में, एक बनाएँ मॉडल फ़ोल्डर। इस फोल्डर में आपके सभी सीक्वेलाइज मॉडल होंगे। अगला, एक मॉडल फ़ाइल बनाएँ। आप फ़ाइल को जो नाम देते हैं, वह मॉडल के प्रतिनिधित्व के बारे में जानकारी प्रदान करता है।
अपनी मॉडल फ़ाइल में, सीक्वलाइज़ उदाहरण आयात करें।
// example.js
कॉन्स्ट {वर्ग} = ज़रूरत होना("../कॉन्फिग/डीबी");
अगला, आयात करें डेटा के प्रकार से सीक्वल.
कॉन्स्ट {डेटा प्रकार} = ज़रूरत होना("अनुक्रम");
डेटा के प्रकार आपको अपने मॉडल पर प्रत्येक गुण के लिए आवश्यक डेटा प्रकार सेट करने देता है।
आप कॉल करके अपने डेटाबेस में एक तालिका का प्रतिनिधित्व करने वाला एक नया सीक्वेलाइज़ मॉडल बना सकते हैं परिभाषित करना आपके सीक्वेलाइज़ उदाहरण पर विधि।
परिभाषित करना विधि दो तर्क लेती है: मॉडल का नाम और एक विशेषता वस्तु। मॉडल का नाम मॉडल के नाम का प्रतिनिधित्व करता है। विशेषता वस्तु डेटाबेस के कॉलम का प्रतिनिधित्व करती है, प्रत्येक संपत्ति कॉलम का प्रतिनिधित्व करती है।
यहाँ एक सीक्वेलाइज़ मॉडल का एक उदाहरण दिया गया है:
कॉन्स्ट उपयोगकर्ता = sq.define ("उपयोगकर्ता", {
ईमेल: {
प्रकार: डेटा प्रकार। डोरी,
अनुमति दें नल: असत्य,
प्राथमिक कुंजी: सत्य,
},पूरा नाम: {
प्रकार: डेटा प्रकार। डोरी,
},
आयु: {
प्रकार: डेटा प्रकार। पूर्णांक,
},
कार्यरत: {
प्रकार: डेटा प्रकार। बूलियन,
डिफ़ॉल्ट मान: असत्य,
},
});
उपरोक्त कोड ब्लॉक a को परिभाषित करता है उपयोगकर्ता एक के साथ मॉडल ईमेल, पूरा नाम, आयु, और कार्यरत गुण।
ईमेल संपत्ति एक स्ट्रिंग प्रकार है जो खाली नहीं हो सकता (अनुमति दें नल: झूठा) और इसके लिए प्राथमिक कुंजी के रूप में भी कार्य करता है उपयोगकर्ता मेज (प्राइमरीकी: सच). पूरा नाम और यह आयु संपत्ति एक स्ट्रिंग है (डेटा के प्रकार। डोरी) और पूर्णांक प्रकार (डेटा के प्रकार। पूर्णांक), क्रमश। कार्यरत संपत्ति एक बूलियन प्रकार है जिसका डिफ़ॉल्ट मान है असत्य, जिसका अर्थ है कि यदि यह निर्दिष्ट नहीं है, तो यह स्वचालित रूप से डेटाबेस में असत्य पर सेट हो जाएगा।
अगला, कॉल करें साथ-साथ करना आपके मॉडल पर विधि। यह विधि कॉन्फ़िगरेशन ऑब्जेक्ट को तर्क के रूप में लेती है। कॉन्फ़िगरेशन ऑब्जेक्ट में विकल्पों के आधार पर, साथ-साथ करना विधि कर सकते हैं:
- उपयोगकर्ता.सिंक (): यदि तालिका मौजूद नहीं है तो तालिका बनाएं और मौजूद होने पर कुछ भी न करें।
- User.sync({बल: सच}): तालिका बनाएँ और पहले को छोड़ दें यदि यह पहले से मौजूद है।
- User.sync ({ परिवर्तन: सत्य }): डेटाबेस में तालिका की वर्तमान स्थिति की जाँच करें और इसे मॉडल से मेल खाने के लिए तालिका में आवश्यक परिवर्तन करें।
उदाहरण के लिए:
User.sync().फिर(() => {
सांत्वना देना।लकड़ी का लट्ठा("उपयोगकर्ता मॉडल समन्वयित");
});
ऊपर दिया गया कोड ब्लॉक इसके लिए डेटाबेस टेबल बनाता है उपयोगकर्ता मॉडल अगर यह मौजूद नहीं है और अगर यह मौजूद है तो कुछ भी नहीं करता है।
अंत में, अपना मॉडल निर्यात करें:
मापांक.निर्यात = उपयोगकर्ता;
एक PostgreSQL डेटाबेस को क्वेरी करना
Sequelize कई तरीके प्रदान करता है जो आपको कच्चे लिखे बिना अपने PostgreSQL डेटाबेस के साथ इंटरैक्ट करने की अनुमति देता है एसक्यूएल कमांड.
डेटा को PostgreSQL में सहेजना
डेटा को PostgreSQL डेटाबेस में सहेजने के लिए, कॉल करें बनाएं अपने मॉडल पर विधि और एक ऑब्जेक्ट पास करें जो PostgreSQL मॉडल को एक तर्क के रूप में लागू करता है।
उदाहरण के लिए:
कॉन्स्ट माइक = User.create({
ईमेल: "माइक@email.com",
पूरा नाम: "माइक स्मिथ",
आयु: 30,
कार्यरत: सत्य,
});
उपरोक्त कोड ब्लॉक एक बनाता है उपयोगकर्ता का उदाहरण माइक अपने डेटाबेस में और एक अद्वितीय आईडी स्वतः उत्पन्न करता है।
PostgreSQL से डेटा पुनर्प्राप्त करना
PostgreSQL डेटाबेस से सीक्वलाइज़ का उपयोग करके डेटा को कई तरीकों से पुनर्प्राप्त किया जा सकता है, लेकिन यह उस डेटा की प्रकृति पर निर्भर करता है जिसे आप प्राप्त करना चाहते हैं।
डेटा पुनर्प्राप्त करने के लिए सबसे आम तरीके हैं ढूँढो एक और सब ढूँढ़ो तरीके। सब ढूँढ़ो सभी डेटा इंस्टेंस देता है जो किसी दिए गए क्वेरी को संतुष्ट करते हैं, जबकि ढूँढो एक क्वेरी को संतुष्ट करने वाला पहला उदाहरण लौटाता है।
उदाहरण के लिए:
// सभी उपयोगकर्ताओं को खोजें
कॉन्स्ट उपयोगकर्ता = इंतजार User.findAll ();
उपरोक्त कोड सभी को वापस कर देगा उपयोगकर्ता डेटाबेस में उदाहरण।
आप का उपयोग करके लौटाए गए डेटा के माध्यम से फ़िल्टर कर सकते हैं कहाँ कथन। यह कथन आपको क्वेरी में कुछ शर्तों को जोड़ने की अनुमति देता है। आपकी क्वेरी केवल उन स्थितियों को वापस करेगी जो उन शर्तों को पूरा करती हैं।
उदाहरण के लिए:
User.findAll({
कहाँ: {
कार्यरत: असत्य
}
});
उपरोक्त कोड सभी को वापस कर देगा उपयोगकर्ता उनके साथ उदाहरण कार्यरत संपत्ति पर सेट असत्य डेटाबेस में।
PostgreSQL पर डेटा अपडेट करना
आप कॉल करके PostgreSQL डेटाबेस पर डेटा अपडेट कर सकते हैं अद्यतन विधि और तर्क के रूप में फ़िल्टर पास करना।
उदाहरण के लिए:
इंतजार उपयोक्ता.अद्यतन({ कार्यरत: सत्य }, {
कहाँ: {
कार्यरत: असत्य
}
});
उपरोक्त कोड सभी को बदल देता है उपयोगकर्ता ए के साथ उदाहरण कार्यरत का मूल्य असत्य को सत्य.
वैकल्पिक रूप से, आप जिन गुणों को बदलना चाहते हैं उन्हें मैन्युअल रूप से संशोधित करके और कॉल करके डेटा अपडेट कर सकते हैं बचाना उदाहरण पर विधि।
उदाहरण के लिए:
कॉन्स्ट यूजरमाइक = इंतजार User.findOne({ कहाँ: { ईमेल: "माइक@email.com" } });
अगर(यूजरमाइक! == व्यर्थ) {
userMike.email = "[email protected]"
इंतजार userMike.save ()
}
उपरोक्त कोड ईमेल "[email protected]" का उपयोग करने वाले उपयोगकर्ता के लिए डेटाबेस से पूछताछ करता है ढूँढो एक तरीका। यदि उपयोगकर्ता पाया जाता है, तो यह ईमेल संपत्ति को "[email protected]" पर पुन: असाइन करता है और कॉल करता है बचाना डेटाबेस को अपडेट करने की विधि।
PostgreSQL पर डेटा हटाना
आप कॉल करके PostgreSQL पर डेटा हटा सकते हैं नष्ट करना विधि और तर्क के रूप में फ़िल्टर पास करना।
उदाहरण के लिए:
इंतजार उपयोक्ता.नष्ट({
कहाँ: {
ईमेल: "[email protected]"
}
});
उपरोक्त कोड "[email protected]" ईमेल वाले उपयोगकर्ता के लिए डेटाबेस से पूछताछ करता है और उपयोगकर्ता को डेटाबेस से हटा देता है।
Sequlize के साथ PostgreSQL का उपयोग करने के लाभ
PostgreSQL डेटाबेस के साथ इंटरैक्ट करने के लिए रॉ SQL क्वेरी लिखना एक परेशानी हो सकती है। Sequelize के साथ, आप आसानी से मॉडल को परिभाषित कर सकते हैं, उनके बीच जुड़ाव बना सकते हैं, और डेटाबेस को एक सरल और सहज API के साथ क्वेरी कर सकते हैं। वैकल्पिक रूप से, आप कच्चे SQL प्रश्नों को लिखने की परेशानी के बिना PostgreSQL डेटाबेस के साथ इंटरैक्ट करने के लिए अन्य ORM, जैसे TypeORM, का उपयोग कर सकते हैं।