expressql
v1.0.9
Published
Production-ready Express boilerplate
Maintainers
Readme
Expressql REST Backend Template
A production-ready Express + TypeScript REST API template generated using the expressql CLI. Feature-first architecture, clean routing, and ready-to-run out of the box.
CLI — expressql
This repository includes a CLI binary entry named expressql (see the bin/expressql file and the bin field in package.json). You can run the CLI via npx (no install) or install it locally/globally when developing.
Usage examples:
- Using
npx(recommended):
npx expressql init <your-backend-name>
# example
npx expressql init backend- Install CLI locally from this checkout (for testing the CLI):
npm install -g .
expressql init backendAfter running the init command the CLI will create a new project folder with the template code. Then:
cd backend
npm install
npm run devThe generated template usually exposes the HTTP API at http://localhost:5000/api/v1 (check process.env.port in your environment).
Example REST endpoints
- GET
/api/v1/users— list users - GET
/api/v1/users/:id— get user by id - POST
/api/v1/users— create user (JSON body:{ "name": "...", "email": "..." }) - DELETE
/api/v1/users/:id— delete user
Postman / cURL examples
Fetch users (curl):
curl -X GET http://localhost:5000/api/v1/usersCreate user (Postman body raw JSON):
POST http://localhost:5000/api/v1/users Headers: Content-Type: application/json
Body:
{ "name": "Charlie", "email": "[email protected]" }Delete user (curl):
curl -X DELETE http://localhost:5000/api/v1/users/1Notes
- This template uses an in-memory array for demo purposes (
src/template/base/src/modules/test/user.data.ts). Data is not persisted between runs. - The CLI binary is defined in
package.jsonunder thebinfield asexpressql→bin/expressql.
Generated Project Structure
When you run npx expressql init <name> the CLI creates a project with the following structure (example):
<project-name>/
├─ package.json
├─ prisma.config.ts
├─ tsconfig.json
├─ README.md
├─ src/
│ ├─ index.ts
│ ├─ server.ts
│ ├─ config/
│ │ └─ env.ts
│ ├─ helpers/
│ │ ├─ apiFormater.ts
│ │ └─ logger.ts
│ ├─ lib/
│ │ └─ prisma.ts
│ ├─ modules/
│ │ └─ test/
│ │ ├─ type.ts
│ │ ├─ user.data.ts
│ │ ├─ user.query.ts
│ │ └─ user.mutation.ts
│ └─ shared/
│ └─ test.ts
└─ prisma/
├─ schema.prisma
└─ migrations/This is a minimal example; the exact files and folders can vary slightly depending on template options and future versions of the CLI.
