1. en windows y vscode verificamos:
node --version
npm --version
psql --version
creamos la carpeta y abri vscode:
PS D:\Proyectos GIT\ex_reservas_api>
npm init -y
npm install -D typescript ts-node-dev @types/node
Esto instala:
typescript— para usar TS en el proyectots-node-dev— hot reload en desarrollo@types/node— tipos de Node para TypeScript

ahora instalamos express
npm install express
npm install -D @types/express

Ahora instalamos el resto de dependencias del proyecto de una sola vez:
npm install jsonwebtoken bcryptjs zod dotenv nodemailer
npm install -D @types/jsonwebtoken @types/bcryptjs @types/nodemailer
Ahora instalamos Prisma:
npm install -D prisma
npm install @prisma/client

Ahora configuramos TypeScript, ejecuta
npx tsc --init

Ahora abre el archivo tsconfig.json que se creó en tu proyecto y reemplaza todo el contenido con esto:
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"lib": ["ES2020"],
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src"],
"exclude": ["node_modules"]
}
Ahora crea la estructura de carpetas. Ejecuta esto en la terminal:
mkdir src
mkdir src\routes
mkdir src\controllers
mkdir src\middlewares
mkdir src\services
mkdir src\utils
mkdir src\types
Ahora abre el package.json y reemplaza la parte de "scripts" con esto:
"scripts": {
"dev": "ts-node-dev --respawn --transpile-only src/index.ts",
"build": "tsc",
"start": "node dist/index.js"
},
crear (usa cmd no powershell)
echo. > src\index.ts
abre el archivo src/index.ts en VS Code y pega esto:
import express from 'express';
import dotenv from 'dotenv';
dotenv.config();
const app = express();
app.use(express.json());
app.get('/', (req, res) => {
res.json({ message: 'Booking API running 🚀' });
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
export default app;
Ahora crea el archivo .env en la raíz del proyecto con cmd:
type nul > .env
PORT=3000
DATABASE_URL="postgresql://postgres:tu_password@localhost:5432/ex_reservas_db"
JWT_SECRET="supersecretkey123"
JWT_REFRESH_SECRET="refreshsecretkey123"
Cambia tu_password por la contraseña de tu PostgreSQL. Guarda y dime cuando listo.
Ahora vamos a configurar Prisma. Ejecuta este comando en la terminal:
npx prisma init

Ahora crea el archivo .gitignore para no subir archivos sensibles a GitHub:
type nul > .gitignore
Ábrelo y pega esto:
```
node_modules
dist
.env
Perfecto, Prisma se inicializó bien. Ahora abre el archivo prisma/schema.prisma que se creó y reemplaza todo el contenido con esto:
prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
Guarda y dime cuando listo. Luego creamos los modelos.
Ahora vamos a crear los modelos de la base de datos. Reemplaza el contenido de prisma/schema.prisma con esto:
No hay comentarios aún