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  
})  

ลิงก์ที่เกี่ยวข้อง


ยินดีรับฟีดแบ็กเสมอ ลองใช้งานกันเยอะ ๆ แล้วช่วยส่งความเห็นมาได้เลย

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น