express-cargo การแยกวิเคราะห์ request แบบ class
(github.com/Beyond-Imagination)express-cargo เป็นมิดเดิลแวร์แบบใช้เดคอเรเตอร์ที่พัฒนาด้วย TypeScript ซึ่งช่วยจัดระเบียบการจัดการข้อมูลคำขอที่ซ้ำ ๆ ให้สะอาดและเป็นระบบ โดยไม่ต้องจัดการ req.body, req.query, req.params โดยตรง และสามารถทำงานที่ต้องการได้ด้วยการประกาศคลาสและเรียกใช้มิดเดิลแวร์
วิธีติดตั้ง
npm install express-cargo reflect-metadata
คุณสมบัติหลัก
- รองรับเดคอเรเตอร์
@body,@query,@param,@header,@session - สามารถจัดการข้อมูลคำขอหลากหลายประเภท เช่น body, query, header ได้พร้อมกันภายในคลาสเดียว
- แปลงประเภทค่าจาก request อัตโนมัติตามชนิดของฟิลด์ในคลาส
- ตรวจสอบข้อมูลด้วย validation decorators เช่น
@equal,@range,@length - แปลงค่าด้วย
@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
ยินดีรับฟีดแบ็กเสมอ ลองใช้งานกันเยอะ ๆ แล้วช่วยส่งความเห็นมาได้เลย
ยังไม่มีความคิดเห็น