├── .gitignore ├── README.md ├── controllers └── userController.js ├── routes └── userRoutes.js ├── package.json └── server.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .env -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Express Backend Template 2 | 3 | 4 | ## Dependencies 5 | 6 | - Express 7 | - MongoDB/Mongoose 8 | - Dotenv 9 | - Morgan 10 | - Cors 11 | - Helmet 12 | 13 | 14 | ## Dev Dependencies 15 | 16 | - Nodemon -------------------------------------------------------------------------------- /controllers/userController.js: -------------------------------------------------------------------------------- 1 | function getAllUsers(req, res) { 2 | res.send("Sending all users..."); 3 | } 4 | 5 | function getUserById(req, res) { 6 | res.send(`Data for user: ${req.params.id}`); 7 | } 8 | 9 | module.exports = { 10 | getAllUsers, 11 | getUserById, 12 | }; 13 | -------------------------------------------------------------------------------- /routes/userRoutes.js: -------------------------------------------------------------------------------- 1 | const express = require("express"); 2 | const { getAllUsers, getUserById } = require("../controllers/userController"); 3 | 4 | // Router 5 | const userRouter = express.Router(); 6 | 7 | /** 8 | * GET /api/user/ 9 | */ 10 | userRouter.get("/", getAllUsers); 11 | 12 | /** 13 | * GET /api/user/:id 14 | */ 15 | userRouter.get("/:id", getUserById); 16 | 17 | module.exports = userRouter; 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "express-server-template", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "server.js", 6 | "scripts": { 7 | "dev": "nodemon server.js", 8 | "start": "node server.js" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "type": "commonjs", 14 | "dependencies": { 15 | "axios": "^1.13.2", 16 | "dotenv": "^17.2.3", 17 | "express": "^5.1.0", 18 | "morgan": "^1.10.1" 19 | }, 20 | "devDependencies": { 21 | "nodemon": "^3.1.11" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const morgan = require('morgan'); 3 | 4 | // Set up all variables in the .env file 5 | require('dotenv').config(); 6 | 7 | const PORT = process.env.PORT || 4000; 8 | 9 | const app = express(); 10 | 11 | 12 | // ========= Middlewares ================= 13 | app.use(morgan('dev')); // logger 14 | app.use(express.json()); // body parser 15 | 16 | // ========= Routes ====================== 17 | app.use('/api/user', require('./routes/userRoutes')); 18 | 19 | // Use this route to setup the API documentation 20 | app.get('/', (req, res) => { 21 | res.send('Welcome to my API!'); 22 | }); 23 | 24 | app.listen(PORT, () => { 25 | console.log(`Server running on port: ${PORT}`) 26 | }); --------------------------------------------------------------------------------