A Node.js backend server built with Express.js and Prisma ORM, following MVC architecture pattern.
cbreezy_backend_web_safari/
├── src/
│ ├── routes/ # Route definitions
│ ├── controllers/ # Request handlers
│ ├── services/ # Business logic
│ ├── app.js # Express app configuration
│ └── server.js # Server entry point
├── prisma/
│ └── schema.prisma # Database schema
├── .env # Environment variables
├── .env.example # Example environment variables
└── package.json # Project dependencies
- Node.js (v14 or higher)
- npm or yarn
- Database (PostgreSQL, MySQL, or SQLite)
-
Install dependencies:
npm install
-
Configure environment variables:
cp .env.example .env
Then edit
.envand set yourDATABASE_URL -
Set up Prisma:
# Generate Prisma Client npm run prisma:generate # Run database migrations npm run prisma:migrate
Development mode (with auto-reload):
npm run devProduction mode:
npm startThe server will start on http://localhost:3000 (or the port specified in your .env file)
npm start- Start the server in production modenpm run dev- Start the server in development mode with nodemonnpm run prisma:generate- Generate Prisma Clientnpm run prisma:migrate- Run database migrationsnpm run prisma:studio- Open Prisma Studio (Database GUI)
GET /health- Check server status
GET /api/users- Get all usersGET /api/users/:id- Get user by IDPOST /api/users- Create new userPUT /api/users/:id- Update userDELETE /api/users/:id- Delete user
- Update your
DATABASE_URLin.envfile - Define your models in
prisma/schema.prisma - Run migrations:
npm run prisma:migrate
Add models to prisma/schema.prisma:
model User {
id Int @id @default(autoincrement())
email String @unique
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}This project follows the MVC (Model-View-Controller) pattern:
- Routes - Define API endpoints and map to controllers
- Controllers - Handle HTTP requests/responses
- Services - Contain business logic and database operations
- Prisma - ORM for database operations (Model layer)
- Create a new service in
src/services/ - Create a new controller in
src/controllers/ - Create routes in
src/routes/ - Register routes in
src/app.js
| Variable | Description | Default |
|---|---|---|
PORT |
Server port | 3000 |
NODE_ENV |
Environment mode | development |
DATABASE_URL |
Database connection string | Required |
ISC