Saltar al contenido principal

Uso básico

Este ejemplo muestra el flujo de extremo a extremo más simple de express-cargo: definir una clase de solicitud, enlazarla con el middleware bindingCargo y leer el resultado validado con getCargo.

Esta página se centra solo en el flujo de enlace. Para la configuración del proyecto (TypeScript, tsconfig, instalación de dependencias), consulta Primeros pasos.

1. Definir una clase de solicitud​

Declara una clase y usa un decorador de origen (aquí @Body()) para asignar cada campo a una parte de la solicitud entrante.

// create-user.request.ts
import { Body } from 'express-cargo'

export class CreateUserRequest {
@Body('name')
name!: string

@Body('email')
email!: string
}

2. Aplicar el middleware​

Pasa la clase de solicitud a bindingCargo y regístralo como middleware en la ruta. El middleware enlaza y valida la solicitud antes de que se ejecute tu manejador.

import express from 'express'
import { bindingCargo, getCargo } from 'express-cargo'
import { CreateUserRequest } from './create-user.request'

const app = express()
app.use(express.json())

app.post('/users', bindingCargo(CreateUserRequest), (req, res) => {
// 3. Leer el objeto enlazado con seguridad de tipos
const user = getCargo<CreateUserRequest>(req)

res.json({
message: 'User created!',
data: user,
})
})

3. Solicitud de ejemplo​

{
"name": "Jane Doe",
"email": "jane@example.com"
}

4. Resultado de ejemplo​

getCargo<CreateUserRequest>(req) devuelve una instancia completamente poblada de CreateUserRequest:

{
"message": "User created!",
"data": {
"name": "Jane Doe",
"email": "jane@example.com"
}
}

Próximos pasos​