本文へスキップ

express-cargo

Express.js向けの宣言的デコレータベースのリクエストデータ処理。

import express from 'express'
import { Body, bindingCargo, getCargo, Min, Header, Params } from 'express-cargo'

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

class RequestExample {
@Body()
name!: string

@Body()
@Min(0)
age!: number

@Params('id')
id!: number

@Header()
authorization!: string
}

app.post('/:id', bindingCargo(RequestExample), (req, res) => {
const data = getCargo<RequestExample>(req)
// write your code with bound data
})

app.listen(3000)

宣言的データバインディング

直感的なデコレータを活用して、リクエストデータ(ボディ、クエリ、パラメータ)をクラスインスタンスに簡単にバインディングし、クリーンでまとまりのあるルーティングロジックを構築できます。

堅牢なデータバリデーション

豊富な組み込みデコレータでデータの妥当性を簡単に検証し、データ処理前に整合性を保証できます。

型安全性と拡張性

TypeScriptベースで開発されており、完全な型安全性を提供します。カスタムデコレータやトランスフォーマーを通じてライブラリを自由に拡張できます。