Zum Hauptinhalt springen

Grundlegende Verwendung

Dieses Beispiel zeigt den einfachsten End-to-End-Ablauf von express-cargo: eine Request-Klasse definieren, sie mit der bindingCargo-Middleware binden und das validierte Ergebnis mit getCargo lesen.

Diese Seite konzentriert sich nur auf den Binding-Ablauf. Für die Projekteinrichtung (TypeScript, tsconfig, Installation der Abhängigkeiten) siehe Erste Schritte.

1. Eine Request-Klasse definieren​

Deklarieren Sie eine Klasse und verwenden Sie einen Source-Decorator (hier @Body()), um jedes Feld einem Teil der eingehenden Anfrage zuzuordnen.

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

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

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

2. Die Middleware anwenden​

Übergeben Sie die Request-Klasse an bindingCargo und registrieren Sie sie als Middleware auf der Route. Die Middleware bindet und validiert die Anfrage, bevor Ihr Handler ausgeführt wird.

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. Das gebundene, typsichere Objekt lesen
const user = getCargo<CreateUserRequest>(req)

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

3. Beispielanfrage​

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

4. Beispielergebnis​

getCargo<CreateUserRequest>(req) gibt eine vollständig gefüllte Instanz von CreateUserRequest zurück:

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

Nächste Schritte​