खोज…


मॉडल-रूट्स-कंट्रोलर्स-सर्विसेज डायरेक्टरी स्ट्रक्चर

├───models
│   ├───user.model.js
├───routes
│   ├───user.route.js
├───services
│   ├───user.service.js
├───controllers
│   ├───user.controller.js

मॉड्यूलर कोड संरचना के लिए तर्क को इन निर्देशिकाओं और फाइलों में विभाजित किया जाना चाहिए।

मॉडल - मॉडल की स्कीमा परिभाषा

रूट्स - एपीआई कंट्रोलर्स को मैप करते हैं

नियंत्रकों - विनियामक अनुरोधों को मान्य करने के पीछे सभी तर्क को संभालते हैं, क्वेरी, सही कोड के साथ प्रतिक्रिया भेजना।

सेवाएँ - सेवाओं में डेटाबेस क्वेरीज़ और ऑब्जेक्ट्स वापस करना या त्रुटियों को फेंकना शामिल है

यह कोडर अधिक कोड लिखना समाप्त कर देगा। लेकिन अंत में कोड अधिक बनाए रखने योग्य और अलग हो जाएंगे।

मॉडल-रूट्स-कंट्रोलर्स-सर्विसेज कोड संरचना

user.model.js

var mongoose = require('mongoose')

const UserSchema  = new mongoose.Schema({
    name: String
})

const User = mongoose.model('User', UserSchema)

module.exports = User;

user.routes.js

var express = require('express');
var router = express.Router();

var UserController = require('../controllers/user.controller')

router.get('/', UserController.getUsers)

module.exports = router;

user.controllers.js

var UserService = require('../services/user.service')    

exports.getUsers = async function (req, res, next) {
    // Validate request parameters, queries using express-validator
    
    var page = req.params.page ? req.params.page : 1;
    var limit = req.params.limit ? req.params.limit : 10;
    try {
        var users = await UserService.getUsers({}, page, limit)
        return res.status(200).json({ status: 200, data: users, message: "Succesfully Users Retrieved" });
    } catch (e) {
        return res.status(400).json({ status: 400, message: e.message });
    }
}

user.services.js

var User = require('../models/user.model')

exports.getUsers = async function (query, page, limit) {

    try {
        var users = await User.find(query)
        return users;
    } catch (e) {
        // Log Errors
        throw Error('Error while Paginating Users')
    }
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow