एक सीआरयूडी एपीआई चार बुनियादी डेटाबेस संचालन के माध्यम से डेटा का प्रबंधन करता है: बनाना, पढ़ना, अपडेट करना और हटाना। आप केवल एक्सप्रेस और पोस्टग्रेएसक्यूएल डेटाबेस के साथ एक साधारण सीआरयूडी एपीआई बना सकते हैं।
एक एक्सप्रेस सर्वर बनाकर शुरू करें जिससे आप PostgreSQL को कनेक्ट करेंगे। फिर, सीआरयूडी फ़ंक्शन बनाएं और उन्हें एपीआई एंडपॉइंट्स से जोड़ दें। एक बार ऐसा करने के बाद, आप नोड को PostgreSQL से कनेक्ट करने और प्रत्येक रूट पर डेटाबेस क्वेरी करने में सक्षम होंगे।
एपीआई के निर्माण के लिए आवश्यक शर्तें
इस ट्यूटोरियल के साथ अनुसरण करने के लिए, आपको यह करना चाहिए:
- अपनी मशीन पर नोड स्थापित करें।
- अपनी मशीन पर PostgreSQL सर्वर स्थापित करें।
- का एक बुनियादी ज्ञान है एक्सप्रेस.जेएस.
एक एक्सप्रेस सर्वर बनाएं
प्रति एक एक्सप्रेस सर्वर बनाएं, एक नई निर्देशिका बनाकर और इसे दर्ज करके शुरू करें:
एमकेडीआईआर नोट्स
सीडी टिप्पणियाँ
फिर npm इनिशियलाइज़ करें:
npm init -y
यह आदेश उत्पन्न करेगा a पैकेज.जेसन नोट्स फ़ोल्डर में फ़ाइल। अंत में, एक्सप्रेस स्थापित करें।
NPM इंस्टॉल अभिव्यक्त करना
नामक एक नई फ़ाइल बनाएँ index.js और निम्नलिखित कोड जोड़ें।
स्थिरांक एक्सप्रेस = ज़रूरत होना("अभिव्यक्त करना");
स्थिरांक ऐप = एक्सप्रेस ();अनुप्रयोग।उपयोग(अभिव्यक्त करना.urlencoded({
विस्तारित: सच
}));
अनुप्रयोग।उपयोग(अभिव्यक्त करना.json())
ऐप.सुनो (3000, () => कंसोल.लॉग("पोर्ट 3000. पर सुन रहा है"));
यह पोर्ट 3000 पर सुनने वाला एक नया सर्वर बनाएगा।
एक PostgreSQL डेटाबेस बनाएँ
नोटब नामक PostgreSQL डेटाबेस बनाने के लिए psql कमांड प्रॉम्प्ट में निम्न कमांड निष्पादित करें।
पोस्टग्रेज =# डेटाबेस नोट बनाएं बी;
इस आदेश को चलाएँ सभी पोस्टग्रेज डेटाबेस को सूचीबद्ध करें और जांचें कि आपने नोटब डेटाबेस बनाया है:
पोस्टग्रेज =# \l
डेटाबेस से कनेक्ट करें
पहली चीजें पहले, अपने नोड एप्लिकेशन को PostgreSQL सर्वर से कनेक्ट करें. आप नोड-पोस्टग्रेस मॉड्यूल का उपयोग कर सकते हैं।
इसे npm के माध्यम से स्थापित करने के लिए निम्नलिखित चलाएँ:
NPM इंस्टॉल स्नातकोत्तर
अच्छे अभ्यास के रूप में, एक अलग फ़ाइल में डेटाबेस से कनेक्ट करें।
नामक एक नई फ़ाइल बनाएँ डीबी.जेएस और निम्नलिखित जोड़ें।
स्थिरांक {ग्राहक} = ज़रूरत होना("पीजी");
स्थिरांक {उपयोगकर्ता, होस्ट, डेटाबेस, पासवर्ड, पोर्ट} = ज़रूरत होना("./dbConfig");स्थिरांक ग्राहक = नया ग्राहक({
उपयोगकर्ता,
मेज़बान,
डेटाबेस,
पासवर्ड,
बंदरगाह,
});
ग्राहक।जुडिये();
मापांक.निर्यात = ग्राहक;
यहां, आप उस कनेक्शन स्ट्रिंग को निर्यात कर रहे हैं जिसका उपयोग आप डेटाबेस से संचार करने के लिए करेंगे। ध्यान दें कि आप डेटाबेस कनेक्शन सेटिंग्स को एक कॉन्फ़िग फ़ाइल से पढ़ रहे हैं जिसे कहा जाता है dbConfig.js. इसलिए, dbConfig.js बनाएं और उसमें निम्न डेटा जोड़ें।
मापांक.निर्यात = {
उपयोगकर्ता: "{डीबीयूसर}",
मेज़बान: "{डीबीहोस्ट}",
डेटाबेस: "विख्यात",
पासवर्ड: "{डीबीपासवर्ड}",
बंदरगाह: 5432,
};
डेटाबेस विवरण को अपने स्थानीय मूल्यों से बदलना याद रखें।
PostgreSQL टेबल बनाएं
Psql कमांड प्रॉम्प्ट में, नोट्स नामक एक टेबल बनाएं। आरंभ करने के लिए, \c कमांड का उपयोग करके नोटब डेटाबेस से कनेक्ट करें।
पोस्टग्रेज =# \c नोटब
इसके बाद, CREATE TABLE कमांड का उपयोग करके कनेक्टेड डेटाबेस में एक टेबल बनाएं।
नोटब =# टेबल नोट्स बनाएं (
आईडी सीरियल प्राथमिक कुंजी,
नोट वचर (255)
);
यह तालिका काफी सरल है। इसमें केवल एक आईडी है जो एक ऑटोजेनरेटेड प्राथमिक कुंजी और एक टेक्स्ट फ़ील्ड है जिसे नोट कहा जाता है।
एक नोट बनाएं
मार्गों में सीआरयूडी संचालन करने के बजाय, ऐसे फ़ंक्शन बनाएं जो डेटाबेस के साथ एक अलग फ़ाइल में इंटरैक्ट करेंगे।
नामक एक सहायक फ़ाइल बनाएँ हेल्पर.जेएस और db.js से कनेक्शन ऑब्जेक्ट आयात करें।
स्थिरांक ग्राहक = ज़रूरत होना("./डीबी");
createNote() फ़ंक्शन बनाने के लिए निम्न कोड का उपयोग करें।
स्थिरांक createNote = (req, res) => {
प्रयत्न {
स्थिरांक {नोट} = req.body;अगर (! नोट) {
फेंकनागलती("नोट भेजें में अनुरोध निकाय");
}
ग्राहक।सवाल(
"डालनामें नोट्स (नोट) मान ($1)",
[टिप्पणी],
(गलती, डेटा) => {
रेस।दर्जा(201).json({
गलती: शून्य,
संदेश: "नया नोट बनाया",
});
}
);
} पकड़ (गलती) {
रेस।दर्जा(500).json({
गलती: गलती।संदेश,
संदेश: " करने में विफल सृजन करनानया टिप्पणी",
});
}
};
यह फ़ंक्शन पहले जांचता है कि अनुरोध निकाय में कोई नोट शामिल है या नहीं। यदि नोट अनुपस्थित है, तो यह एक त्रुटि फेंकता है।
एक नोट बनाने के लिए, फ़ंक्शन INSERT क्लॉज का उपयोग करता है। यह एक JSON ऑब्जेक्ट देता है जिसमें एक शून्य त्रुटि संदेश और सफल होने पर एक सफलता संदेश होता है।
सभी नोट्स प्राप्त करें
तालिका से सभी नोट्स प्राप्त करने के लिए, SELECT * क्लॉज का उपयोग करें।
स्थिरांक getNotes = (req, res) => {
प्रयत्न {
क्लाइंट.क्वेरी ("चुनें * नोट्स से", (गलती, डेटा) => {
यदि (गलती) फेंकना गलती;
रेस।दर्जा(200).json({
गलती: शून्य,
टिप्पणियाँ: जानकारीपंक्तियाँ,
});
});
} पकड़ (गलती) {
रेस।दर्जा(500).json({
ग़लती होना: गलती।संदेश,
टिप्पणियाँ: शून्य,
});
}
};
getNotes() क्वेरी सफल होने पर प्रतिक्रिया ऑब्जेक्ट में नोट्स सरणी भेजता है।
आईडी द्वारा नोट प्राप्त करें
एपीआई में एक एंडपॉइंट भी होगा जो आईडी द्वारा एक नोट लौटाता है। helper.js में, getNoteById() फ़ंक्शन जोड़ें।
स्थिरांक getNoteById = (req, res) => {
प्रयत्न {
स्थिरांक { आईडी } = req.params;
क्लाइंट.क्वेरी ("चुनें * नोट्स से जहां id=$1", [आईडी], (गलती, डेटा) => {
यदि (गलती) फेंकना गलती;
रेस।दर्जा(200).json({
गलती: शून्य,
टिप्पणी: जानकारीपंक्तियाँ[0],
});
});
} पकड़ (गलती) {
रेस।दर्जा(500).json({
ग़लती होना: ग़लती होना।संदेश,
टिप्पणी: शून्य,
});
}
};
यह फ़ंक्शन एक JSON ऑब्जेक्ट लौटाएगा जिसमें नोट और एक त्रुटि ऑब्जेक्ट होगा।
आईडी द्वारा अद्यतन नोट
किसी नोट को अपडेट करने के लिए, आपको एक नोट और उस नोट की आईडी की आवश्यकता होगी। आपको अनुरोध निकाय से नोट और URL से आईडी प्राप्त होगी।
UpdateNoteById() फ़ंक्शन किसी मौजूदा नोट को नए नोट के साथ अपडेट करने के लिए UPDATE क्लॉज का उपयोग करता है।
स्थिरांक UpdateNoteById = (req, res) => {
प्रयत्न {
स्थिरांक { आईडी } = req.params;
स्थिरांक {नोट} = req.body;
ग्राहक।सवाल(
"अपडेट करें टिप्पणियाँ समूह नोट = $1कहाँ पेपहचान = $2",
[नोट, आईडी],
(गलती, डेटा) => {
यदि (गलती) फेंकना गलती;
रेस।दर्जा(201).json({
गलती: शून्य,
संदेश: "अपडेट किया गया नोट",
});
}
);
} पकड़ (गलती) {
रेस।दर्जा(500).json({
ग़लती होना: गलती।संदेश,
संदेश: "नोट अपडेट करने में विफल",
});
}
};
यदि तालिका अपडेट की जाती है तो यह फ़ंक्शन एक सफलता संदेश देता है और यदि यह नहीं है तो एक त्रुटि संदेश देता है।
आईडी द्वारा नोट हटाएं
तालिका से आईडी द्वारा नोट हटाने के लिए निम्नलिखित कोड का उपयोग करें।
स्थिरांक डिलीट नोट = (req, res) => {
प्रयत्न {
स्थिरांक { आईडी } = req.params;
क्लाइंट.क्वेरी ("नोटों से हटाएं जहां id=$1", [आईडी], (गलती, डेटा) => {
यदि (गलती) फेंकना गलती;
रेस।दर्जा(200).json({
गलती: शून्य,
संदेश: "नोट हटाया गया",
});
});
} पकड़ (गलती) {
रेस।दर्जा(500).json({
गलती: गलती।संदेश,
संदेश: "नोट हटाने में विफल",
});
}
};
अब जब आपने सभी CRUD फ़ंक्शन बना लिए हैं, तो उन्हें निर्यात करें।
helper.js में, निम्नलिखित जोड़ें।
मापांक.निर्यात = { createNote, getNotes, getNoteById, updateNoteById, deleteNote};
आप उन्हें आयात करेंगे index.js एपीआई एंडपॉइंट बनाते समय।
एपीआई रूट बनाएं
अंतिम चरण में एपीआई एंडपॉइंट बनाना है index.js प्रत्येक सीआरयूडी संचालन के लिए।
helper.js फ़ाइल आयात करके प्रारंभ करें।
स्थिरांक डीबी = ज़रूरत होना("./सहायक")
इसके बाद, प्रत्येक समापन बिंदु बनाएं।
app.get("/notes", डीबी.गेट नोट्स);
app.get("/note/:id", db.getNoteById);
ऐप.पुट("/note/:id", db.updateNoteById);
ऐप.पोस्ट("/note", डीबी.क्रिएटनोट);
ऐप.डिलीट("/note/:id", डीबी.डिलीट नोट);
आपके डेटाबेस को अपडेट करने के लिए एक REST API
एक बार जब आप कर लेते हैं, तो आप जांच सकते हैं कि आपका एपीआई पोस्टमैन जैसे आरईएसटी क्लाइंट का उपयोग करके या यूनिट परीक्षण लिखकर काम करता है। आपको यह सुनिश्चित करने में सक्षम होना चाहिए कि पांच समापन बिंदु आपकी अपेक्षा के अनुरूप काम करते हैं।
आप pgAdmin टूल का उपयोग करके डेटाबेस में जोड़े गए डेटा का निरीक्षण और प्रबंधन भी कर सकते हैं। यह एक GUI एप्लिकेशन है जो डेटाबेस व्यवस्थापन करना और PostgreSQL सर्वर के साथ सहभागिता करना आसान बनाता है।