@hphudev/create-expressjs-app
v1.7.7
Published
CLI to scaffold Node.js apps
Downloads
12
Maintainers
Readme
Express.js TypeScript Template
A modern, production-ready Express.js template with TypeScript support, featuring MongoDB integration, Swagger documentation, error handling, logging, and more.
Prerequisites
- Node.js version 22.15.1 (required)
- MongoDB (for database)
Quick Start
To create a new project using this template:
npx @hphudev/create-expressjs-appFeatures
- ⚡️ TypeScript - Write better, more reliable code
- 📦 MongoDB Integration - Ready-to-use MongoDB connection and models
- 📝 Swagger Documentation - Built-in API documentation with export capability
- 🔒 Error Handling - Centralized error handling
- 📊 Logging System - Request logging with daily log files
- 🛠️ Environment Variables - Secure configuration management
- 🚦 Middleware Support - Pre-configured middleware setup
- 🧪 CORS Enabled - Cross-Origin Resource Sharing support
- 📁 Structured Project - Well-organized project architecture
Project Structure
├── src/
│ ├── config/ # Configuration files
│ ├── controllers/ # Route controllers
│ ├── core/ # Core functionality
│ ├── docs/ # API documentation
│ ├── jobs/ # Background jobs
│ ├── middlewares/ # Express middlewares
│ ├── models/ # MongoDB models
│ ├── routes/ # API routes
│ ├── services/ # Business logic
│ ├── utils/ # Utility functions
│ ├── validations/ # Request validation
│ └── index.ts # Application entry point
├── scripts/ # Utility scripts
│ └── export-swagger.ts # Swagger JSON export script
├── logs/ # Application logs
├── public/ # Public assets
│ └── docs/ # Generated API documentation
├── package.json
└── tsconfig.jsonScripts
npm run dev- Start the development server with hot-reloadnpm run build- Build the project for productionnpm start- Start the production servernpm run export-swagger- Export Swagger documentation to JSON file
Dependencies
Core Dependencies
- express - Web framework
- mongoose - MongoDB object modeling
- cors - CORS middleware
- dotenv - Environment variables
- swagger-jsdoc & swagger-ui-express - API documentation
- ulid - Unique ID generation
- yamljs - YAML file support
Development Dependencies
- typescript - TypeScript support
- tsx - TypeScript execution
- @types/* - TypeScript type definitions
Environment Variables
Create a .env file in the root directory with the following variables:
DATABASE_URL=mongodb://127.0.0.1:27017/test
SERVER_URL=http://localhost:3000
PORT=3000API Documentation
The API documentation is available in two formats:
- Interactive Swagger UI: Once the server is running, access at:
http://localhost:3000/api/docs- Static JSON File: Generate the Swagger JSON file using:
npm run export-swaggerThe generated file will be available at public/docs/api-document.json
Error Handling
The template includes a centralized error handling system. Custom errors can be thrown using the AppError class:
throw new AppError('Error message', 400);Logging
Request logs are automatically saved in the logs directory with the format [DD-MM-YYYY]-access.log.
License
ISC
Author
Created by @hphudev
