Welcome to the Express App Generator! This tool helps you quickly set up an Express application with pre-configured middleware and optional database connections.
npx configure-express-app@latest
-
Auto-detect Node.js version: Automatically adjusts settings based on the installed Node.js version.
-
Example:
- In node version 20 don't need this env import, Node js supports .env default. Automatically added (Node.js <= 18)
require('dotenv').config();
- Auto detect node.js version and automatically added (Node.js >= 20)
node --env-file=.env server.js
- In node version 20 don't need this env import, Node js supports .env default. Automatically added (Node.js <= 18)
-
Pre-configured Environment Setup:
- Includes a
.env
file for environment variables.
- Includes a
-
Pre-installed Modules and Middleware:
- Express: Web framework for Node.js.
- Rate Limiter: Middleware to limit repeated requests to public APIs and/or endpoints.
- Nodemon: Automatically restarts the server for development.
- Winston: Logging library for application logs.
- UUID: Generates unique request IDs.
- Compression: Gzip compression for improved performance.
- Helmet: Security middleware for HTTP headers.
- CORS: Middleware to enable Cross-Origin Resource Sharing.
- Body-Parser: Middleware to parse incoming request bodies.
- Error Handling: Standardized error responses.
- HPP: Prevent HTTP Parameter Pollution.
- Request Logging: Logs request body, params, query, and headers.
- Prettier: Code formatter for consistent code style.
-
.gitignore
: Pre-configured to exclude sensitive files and directories.
-
Database Configuration:
- Choose from PostgreSQL, MongoDB, or None during setup.
- Sample database connection is created in the
database
directory.
Ensure you have the following software installed on your system:
To create a new Express app, follow these steps:
-
Run the Generator:
npx configure-express-app@latest
-
Navigate to Your Project Directory:
cd your-project-name
-
Pre Installed Dependencies Automatically
-
Configure Environment Variables:
Create a
.env
file in the root of your project and set your environment variables. A sample.env.example
file is provided.cp .env.example .env
Edit the
.env
file as needed. -
Run the Application In Production:
npm start
-
Development Mode:
For development mode with live-reloading:
npm run dev
Your Express app will have the following structure:
-
Adding Routes: Define your routes in the
routes
directory. Create new files for different route groups and import them inroutes/index.js
. -
Creating Controllers: Implement your business logic in controllers, located in the
controllers
directory. -
Using Middleware: Add custom middleware in the
middlewares
directory. -
Database Models: Define your database models in the
models
directory. Ensure your database connection is configured indatabase/db.js
. -
Environment Variables: Manage configuration settings through the
.env
file.
The following scripts are available:
-
npm start
: Start the application. -
npm run dev
: Start the application in development mode with Nodemon. -
npm run prettify
: prettify your code using Prettier.
- Helmet: Protects against known vulnerabilities by setting HTTP headers appropriately.
- HPP: Prevents HTTP Parameter Pollution.
- Express-Mongo-Sanitize: Prevents NoSQL injection attacks.
If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are welcome.
This project is licensed under the MIT License. See the LICENSE file for details.