Express App Generator
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
Features
-
Auto-detect Node.js version: Automatically adjusts settings based on the installed Node.js version.
-
Example:
-
Pre-configured Environment Setup:
- Includes a
.env
file for environment variables.
-
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.
Prerequisites
Ensure you have the following software installed on your system:
Installation
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
Project Structure
Your Express app will have the following structure:
Usage
-
Adding Routes: Define your routes in the routes
directory. Create new files for different route groups and import them in routes/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 in database/db.js
.
-
Environment Variables: Manage configuration settings through the .env
file.
Scripts
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.
Security
- Helmet: Protects against known vulnerabilities by setting HTTP headers appropriately.
- HPP: Prevents HTTP Parameter Pollution.
- Express-Mongo-Sanitize: Prevents NoSQL injection attacks.
Contributing
If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are welcome.
License
This project is licensed under the MIT License. See the LICENSE file for details.