NodeJS,Mongoose,Express Project in MVC Architecture
Supported version of nodejs >= 12, Supported version of mongoose >= 6
About
- This is a Node application, developed using MVC pattern with Node.js, ExpressJS, and Mongoose.
- MongoDB database is used for data storage, with object modeling provided by Mongoose.
Initial
-
$ npm install
-
$ npm start
-
Credentials
- One user with User role,
Default User credentials
username : Isabel87 password : L8FQZgFTYNcLd1w
- One user with Admin role,
Default Admin credentials
username : Darrion_Williamson password : nwmOPHLwy1QnQhQ
How to use generated APIs:
Click here to visit documentation
How to run with Docker ? :
- if you have docker file you can execute following command
- build the image
$ docker build --pull --rm -f "Dockerfile" -t <imageName>:latest "."
- execute the command
$ docker run -p 3000:3000 <imageName>
Folder structure:
├── app.js - starting point of the application
├── config
│ └── db.js - contains api database connection
├── constants - contains commonly used constants
├── controllers
│ └── platform - contains business logic
├── jobs - cron jobs
├── models - models of application
├── postman - postman collection files
├── routes - contains all the routes of application
├── services - contains commonly used services
├── views - templates
└── utils - contains utility functions
Detail Description of Files and folders
- app.js
- entry point of application.
- config
- passport strategy files
- database connection files
- constants
- constants used across application.
- controllers
- Controller files that contains Business logic
├── controller
├── platform
└── modelNameController.js - contains CRUD Operations
- jobs
- Cron jobs
- middleware
- Middleware files for authentication, authorization and role-access.
- models
- Database models
- postman
- Postman collection of APIs (Import this JSON in Postman to run the APIs)
- public
- Assets used in application
- routes
├── routes
├── platform
├── modelNameRoutes.js - contains CRUD operation routes
└── index.js - exports model Routes
└── index.js - exports platform routes
- index.js file, exports platform routes, imported into app.js to access all the routes.
- services
├── services
├── jobs - cron jobs
└── auth.js - Authentication module service
- utils
├── utils
├── validations - joi validations files for every model
├── dbService.js - Database functions
├── messages.js - Messages used in sending response
├── responseCode.js - response codes
└── validateRequest.js - validate request based on model schema
- env files
- You can add credentials and port, database values as per your environment(Development/Production).
- If you are running test environment then test cases will run using test database,and its configuration is there inside app.js