跳到主要内容

基础用法

本示例展示 express-cargo 最简单的端到端流程:定义一个请求类,用 bindingCargo 中间件进行绑定,然后用 getCargo 读取已验证的结果。

本页仅聚焦于绑定流程。关于项目搭建(TypeScript、tsconfig、安装依赖),请参见快速开始。

1. 定义请求类​

声明一个类,并使用来源装饰器(这里是 @Body())将每个字段映射到传入请求的某个部分。

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

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

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

2. 应用中间件​

将请求类传给 bindingCargo,并把它注册为路由上的中间件。中间件会在你的处理器运行之前绑定并验证请求。

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. 读取已绑定的、类型安全的对象
const user = getCargo<CreateUserRequest>(req)

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

3. 请求示例​

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

4. 结果示例​

getCargo<CreateUserRequest>(req) 返回一个完整填充的 CreateUserRequest 实例:

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

后续步骤​