MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

AdminBro, एक्सप्रेस, mongoDB, mongoose के साथ पाँच मिनट में एक व्यवस्थापक क्षेत्र बनाना

एक व्यवस्थापक क्षेत्र स्थापित करने और वास्तव में सभी व्यवस्थापक मार्गों और नियंत्रकों का निर्माण किए बिना पांच मिनट में अपने डेटा के साथ काम करना शुरू करने का एक तरीका है। यहां बताया गया है...

हमारे पास केवल मॉडल होने चाहिए और फिर हम अपने मॉडल के अलावा कुछ भी नहीं के आधार पर पूरी तरह से काम करने वाले डैशबोर्ड को चलाने के लिए AdminBro पैकेज का उपयोग कर सकते हैं।

सबसे पहले हमें एक्सप्रेस सर्वर सेट करना होगा।

mkdir server 
cd server 
npm init

आइए एक्सप्रेस और एडमिन ब्रो पैकेज स्थापित करें:

npm i @adminjs/express @adminjs/mongoose adminjs express mongoose            

अब हमें मॉडलों के लिए एक फोल्डर बनाने की जरूरत है

mkdir models

और मॉडल के लिए फ़ाइलें, मान लें कि हम उत्पादों और श्रेणियों के लिए एक मॉडल बनाएंगे

touch models/products.js models/categories.js

आइए उत्पाद के लिए models/products.js . में स्कीमा परिभाषित करें :

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const productsSchema = new Schema({
  product: {
    type: String,
    required: true,
    unique: true
  },
  price: {
    type: Number,
    required: true
  },
  categoryId: {
    type: Schema.Types.ObjectId, ref: 'categories',
    required: true
  },
});

module.exports = mongoose.model('products', productsSchema);

और models/categories.js . के अंदर की श्रेणियों के लिए :

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const categoriesSchema = new Schema({
    category: {
        type: String,
        required: true,
        unique: true
    }
},
{strictQuery: false}
)
module.exports =  mongoose.model('categories', categoriesSchema);

अब मुख्य सर्वर फ़ाइल index.js बनाते हैं हमारे server . के अंदर फ़ोल्डर:

touch index.js

और इसमें इस बेसिक बेयरबोन कोड को जोड़ें:

// GENERAL CONFIG
const app = require('express')();
const port = process.env.PORT || 5050;

// CONNECTING TO DB
const mongoose = require('mongoose');
(async function () {
  try {
    await mongoose.connect('mongodb://127.0.0.1/ourDatabase');
    console.log('Your DB is running');
  } catch (error) {
    console.log('your DB is not running. Start it up!');
  }
})();

app.listen(port, () => console.log(`🚀 Server running on port ${port} 🚀`));

अब हम अपना सर्वर nodemon . के साथ चला सकते हैं और देखें कि यह स्थानीय मोंगो डेटाबेस से जुड़ा हुआ है और चल रहा है।

अब अंतिम चरण -- हमें अपने मॉडलों को आयात करने की आवश्यकता है और बाकी काम एडमिन ब्रो करेगा।

इसे अपने index.js . में जोड़ें डीबी से कनेक्ट करने के बाद फ़ाइल:

// ADMIN BRO
const AdminJS = require('adminjs');
const AdminJSExpress = require('@adminjs/express')
// We have to tell AdminJS that we will manage mongoose resources with it
AdminJS.registerAdapter(require('@adminjs/mongoose'));
// Import all the project's models
const Categories = require('./models/categories'); // replace this for your model
const Products = require('./models/products'); // replace this for your model
// Pass configuration settings  and models to AdminJS
const adminJS = new AdminJS({
  resources: [Categories, Products],
  rootPath: '/admin'
});
// Build and use a router which will handle all AdminJS routes
const router = AdminJSExpress.buildRouter(adminJS);
app.use(adminJS.options.rootPath, router);
// END ADMIN BRO

जैसा कि आप व्यवस्थापक भाई को आयात करने के बाद देख सकते हैं कि हमें अपने मॉडल की आवश्यकता है:

const Categories = require('./models/categories'); // replace this for your model
const Products = require('./models/products'); // replace this for your model

और फिर उन्हें पास करना (Categories और Products ) इस उदाहरण में व्यवस्थापक भाई में):

const adminJS = new AdminJS({
  resources: [Categories, Products],
  rootPath: '/admin'
});

साथ ही rootPath: '/admin' . में डैशबोर्ड के लिए पथ सेट करना

अब यदि हम अपने सर्वर को निर्दिष्ट पोर्ट (इस उदाहरण में 5050) पर खोलेंगे और व्यवस्थापक url (/admin) पर जाएंगे ) इस उदाहरण में हम अपने डेटा के साथ उपयोग के लिए तैयार शानदार डैशबोर्ड देखेंगे।

GitHub पर डेमो रेपो


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो डीबी को एक कमांड में कैसे रोकें

  2. MongoDB में वाइल्डकार्ड इंडेक्स में विशिष्ट फ़ील्ड शामिल करें

  3. MongoDB में खोज/प्रक्षेपण करते समय मैं फ़ील्ड का नाम कैसे बदलूं?

  4. GoMongoDB जैसी क्वेरी एक्सप्रेशन ऑब्जेक्ट मूल्यांकन को लागू करना

  5. फ्लास्क में फॉर्म POST ऑब्जेक्ट को मोंगोडब के लिए उपयुक्त प्रतिनिधित्व में परिवर्तित करें