expressjs-mvc-generator
v1.0.0
Published
Lightweight CLI to scaffold a TypeScript Express.js MVC project with support for PostgreSQL, MySQL, MariaDB, SQLite, MSSQL and MongoDB.
Readme
expressjs-mvc-generator
Zero-dependency CLI that scaffolds a clean, modern TypeScript Express.js project in an MVC layout, with first-class support for every popular database.
Features
- TypeScript-first – strict mode, ESM, hot reload via
tsx. - Clean MVC layout –
routes / controllers / services / models / middlewares / config. - Pluggable database – PostgreSQL, MySQL, MariaDB, SQLite, MSSQL (via Sequelize) or MongoDB (via Mongoose). Or none.
- Production-ready basics – CORS, JSON body parsing, structured error handling, 404 handler, env loading, graceful shutdown.
- Tiny footprint – the generator itself has zero runtime dependencies.
Install
npm install -g expressjs-mvc-generatorOr run once with npx:
npx expressjs-mvc-generator my-app --db postgresUsage
express-mvc <project-name> [options]Options
| Flag | Description | Default |
|------|-------------|---------|
| --db <type> | One of: postgres, mysql, mariadb, sqlite, mssql, mongodb, none | postgres |
| --force, -f | Allow non-empty target directory | false |
| --no-git | Skip .gitignore | – |
| --version, -v | Print CLI version | – |
| --help, -h | Show help | – |
Examples
express-mvc my-api # PostgreSQL (default)
express-mvc shop-api --db mongodb
express-mvc edge-app --db sqlite
express-mvc legacy --db mssql --force
express-mvc plain-api --db noneGenerated project
my-app/
├── .env.example
├── .gitignore
├── package.json
├── tsconfig.json
├── README.md
└── src/
├── server.ts # entry — starts HTTP server, graceful shutdown
├── app.ts # express app, middlewares, routes
├── config/
│ ├── env.ts # typed env loader
│ └── db.ts # DB connection (sequelize / mongoose / none)
├── routes/
│ ├── index.ts
│ └── health.routes.ts
├── controllers/
│ └── health.controller.ts
├── services/
│ └── health.service.ts
├── models/ # only when --db is not "none"
│ └── user.model.ts
├── middlewares/
│ ├── error.middleware.ts
│ └── notFound.middleware.ts
└── utils/
└── logger.tsScripts in the generated project
npm run dev # tsx watch — hot reload
npm run build # compile to dist/
npm start # run compiled JSLicense
MIT © Muhammad Arqam
