express-cargo クラスベースの request パース
(github.com/Beyond-Imagination)express-cargo は TypeScript ベースのデコレーター方式で、繰り返し発生するリクエストデータ処理をすっきり整理してくれるミドルウェアです。req.body、req.query、req.params を直接扱わず、クラス宣言とミドルウェア呼び出しで必要な処理を行えます。
インストール方法
npm install express-cargo reflect-metadata
主な特徴
@body、@query、@param、@header、@sessionデコレーターをサポート- 1つのクラスで body、query、header などさまざまなリクエスト情報をまとめて処理可能
- クラスフィールドの型に合わせて request の値の型を自動変換
@equal、@range、@lengthなどの validation デコレーターで検証@transformを使った値の変換@virtualを使って他のフィールド値を参照し、値を設定
サンプルコード
class RequestExample {
@body()
name!: string
@body()
@min(0)
age!: number
@params()
id!: number
@header()
authorization!: string
}
app.post('/:id', bindingCargo(RequestExample), (req, res) => {
const data = getCargo<RequestExample>(req)
// write your code with bound data
})
関連リンク
- github : https://github.com/Beyond-Imagination/express-cargo
- npm : https://www.npmjs.com/package/express-cargo
- docs : https://beyond-imagination.github.io/express-cargo
フィードバックはいつでも歓迎です。ぜひいろいろ使ってみて、ご意見をお寄せください。
まだコメントはありません。