मोंगोज़ एक ढांचा है जो MongoDB के साथ बातचीत की सुविधा प्रदान करता है। असल में आप मूल रूप से कभी भी सभी सत्यापन, कास्टिंग और तर्क बॉयलरप्लेट को अपने दम पर नहीं करना चाहते हैं, तो पहिया को फिर से क्यों शुरू करें।
और चूंकि आप एक शुरुआत कर रहे हैं, फ्रेमवर्क से डरो मत। आपके लिए जीवन को आसान बनाने के लिए बैकएंड और फ्रंटएंड के कई क्षेत्रों के लिए कई उपयोगी ढांचे हैं।
आपके द्वारा साझा किया गया लेख स्व-व्याख्यात्मक है, लेकिन मैं केवल डेटाबेस भाग का सारांश दूंगा आपके लिए (मैं आपके कोड में गहराई तक नहीं जाऊंगा, कोई गधा काम नहीं करेगा। बाकी आप पर निर्भर है):
1) सबसे पहले नेवला इंस्टॉल करें।
npm install mongoose
लेख में --save
है जिसे अब जोड़ने की आवश्यकता नहीं है, जैसे "npm install
डिफ़ॉल्ट रूप से किसी भी निर्दिष्ट पैकेज को निर्भरता में सहेजता है।"(ref.
)
2) मोंगोज़ . तक पहुँचने और उपयोग करने में सक्षम होने के लिए , आपको इसे नोड तरीके से आयात करने की आवश्यकता है, अर्थात require()
.
const express = require(‘express’)
const mongoose = require(“mongoose”);
const bodyParser = require(‘body-parser’);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
और बॉडी-पार्सर क्या है वहाँ के लिए?
एक्सप्रेस में डेटाबेस के साथ काम करते समय, जल्दी या बाद में आप यह वाला
.
और जिस कारण से हमें एक की आवश्यकता है वह सबसे अच्छी तरह से समझाया गया है इस उत्तर .
साथ ही, एक्सप्रेस के हाल के संस्करणों का अब अपना बॉडी पार्सर है, इसलिए आप app.use(express.json())
का उपयोग कर सकते हैं इसके बजाय app.use(bodyParser.json())
.
महत्वपूर्ण: बॉडी-पार्सर आपके मार्गों से पहले होना चाहिए।
3) mongoose.connect(url)
. का उपयोग करें .
url
तर्क वह है जो आप अपने MongoDB एटलस . में पाते हैं . :
स्थान:क्लस्टर टैब -> कनेक्ट करें -> अपना एप्लिकेशन कनेक्ट करें -> ड्राइवर नोड.जेएस
जो आपको कुछ इस तरह देता है:
mongodb+srv://<user>:<password>@,cluster>.mongodb.net/test?retryWrites=true&w=majority
महत्वपूर्ण: आप उस उपयोगकर्ता के उपयोगकर्ता और पासवर्ड का उपयोग करते हैं जिसे आपने डेटाबेस एक्सेस टैब में बनाया है, न कि अपने स्वयं के उपयोगकर्ता और पासवर्ड का।
संवेदनशील और परिवर्तनशील डेटा को सुरक्षित करने के लिए आप अपने पर्यावरण चर सेट कर सकते हैं। लेकिन मैं config.js
का उपयोग करना पसंद करता हूं सादगी के लिए, और जो आमतौर पर ऐप की जड़ में रहता है।
न केवल आप उन्हें सुरक्षित कर सकते हैं (जैसे .gitignore
. का उपयोग करने के लिए ), लेकिन उन्हें आसानी से संशोधित भी कर सकते हैं क्योंकि ऐसे चर हैं जो एक वातावरण से दूसरे वातावरण में बदल सकते हैं, जिससे उन्हें एक ही स्थान पर उपलब्ध कराया जा सकता है और उन्हें आपके पूरे ऐप में बदलने के लिए खोजने के बजाय आसानी से खोजा जा सकता है।
.env
. के लिए फ़ाइल दृष्टिकोण, पढ़ें यह लेख
।
महत्वपूर्ण: यदि आप अपना कोड जीथब में या कहीं भी ऑनलाइन रखना चाहते हैं, तो हम किस एक कारण से config.js
का उपयोग करते हैं , इस फ़ाइल को .gitignore
. में जोड़ना न भूलें ऐसे संवेदनशील डेटा को ऑनलाइन लीक होने और दूसरों के संपर्क में आने से बचाने के लिए।
config.js
में आप ऐसा कर सकते हैं:
exports.username = 'your user';
exports.pass = 'your pass';
exports.myCluster = 'your cluster's name';
फिर उन्हें इस प्रकार आयात करें:
const { username, pass, myCluster } = require('./config');
<- आपके लिए रास्ता अलग हो सकता है!
युक्ति: आप बैक-टिक का उपयोग कर सकते हैं (` `
) const url
. के लिए उन चरों को आसानी से सम्मिलित करने के लिए , प्रक्षेपण . के माध्यम से .
वह है:
const url = `mongodb+srv://${username}:${password},${myCluster}.mongodb.net/test?retryWrites=true&w=majority`
महत्वपूर्ण: सुनिश्चित करें कि श्वेतसूची आपका आईपी MongoDB की ओर से (एटलस), अन्यथा आपको कनेक्शन त्रुटि मिलेगी। सुरक्षा . के तहत :नेटवर्क एक्सेस -> आईपी श्वेतसूची
आप 0.0.0.0/0
का उपयोग कर सकते हैं सभी IP को श्वेतसूची में डालने के लिए।
साथ ही, VPN . का उपयोग करते समय , आपका आईपी भी बदल जाएगा।
4) आखिरी लेकिन कम से कम नहीं , डेटाबेस से कनेक्ट होने के बाद, आपको अपनी स्कीमा . को परिभाषित करने की आवश्यकता है :
const moviesSchema = new mongoose.Schema({
title: String,
year: Number,
rating: Number
});
और
const Movies = mongoose.model(“Movies”, moviesSchema);
युक्ति: कई नए लोग एक सामान्य गलती यह करते हैं कि वे new
. का उपयोग करना भूल गए :new mongoose.Schema({...})
यदि आप अपना मॉडल एक अलग फ़ाइल में बनाना चाहते हैं (जो सबसे अच्छा अभ्यास है), तो आपको अपनी const Movies
को संशोधित करना होगा। तो:
module.exports = mongoose.model(“Movies”, moviesSchema);
जोड़ना न भूलें const mongoose = require('mongoose');
उस अलग जेएस मॉडल फ़ाइल में।
और जहां भी आप उपयोग करते हैं, इस मॉडल का उपयोग करना चाहते हैं, आप इसे आयात करते हैं:
const Movies= require('../models/movies');
(आपके ऐप के लिए रास्ता अलग हो सकता है)
बाकी, मेरे दोस्त, आप पर निर्भर है। आप अपने डेटाबेस के साथ क्या करना चाहते हैं और इसका उपयोग कैसे करें।
दूसरों के लिए नोट:मैंने इसे लिखते समय इतना समय और दिमाग लगाया। कृपया, यदि आप कुछ गलत देखते हैं, या सोचते हैं कि आप कुछ जोड़ सकते हैं, तो बेझिझक संपादित करें और मेरे उत्तर में सुधार करें।