Questions And Answers

More Tutorials

NodeJS Model Routes Controllers Services Code Structure


var mongoose = require('mongoose')
const UserSchema = new mongoose.Schema({
 name: String
const User = mongoose.model('User', UserSchema)
module.exports = User;


var express = require('express');
var router = express.Router();
var UserController = require('../controllers/user.controller')
router.get('/', UserController.getUsers)
module.exports = router;


var UserService = require('../services/user.service')
exports.getUsers = async function (req, res, next) {
 // Validate request parameters, queries using express-validator

 var 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 });

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')


In this page (written and validated by ) you learned about NodeJS Model Routes Controllers Services Code Structure . What's Next? If you are interested in completing NodeJS tutorial, your next topic will be learning about: NodeJS Push notifications.

Incorrect info or code snippet? We take very seriously the accuracy of the information provided on our website. We also make sure to test all snippets and examples provided for each section. If you find any incorrect information, please send us an email about the issue:

Share On:

Mockstacks was launched to help beginners learn programming languages; the site is optimized with no Ads as, Ads might slow down the performance. We also don't track any personal information; we also don't collect any kind of data unless the user provided us a corrected information. Almost all examples have been tested. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. By using, you agree to have read and accepted our terms of use, cookies and privacy policy.