มีอะไรใหม่ใน Express.js v5.0

10 ปีที่รอคอย! Express.js V5.0 มาแล้ว!  เมื่อวันที่ 15 ตุลาคม 2024 ที่ผ่านมา Express.js ได้ทำการออกเวอร์ชัน 5.0 อย่างเป็นทางการ มาพร้อมกับการอัปเดต และการเพิ่มประสิทธิภาพต่างๆ ที่ดีขึ้น แม้ว่าตัว API จะไม่ได้แตกต่างจาก V4 มากนัก แต่ก็มีหลายอย่างที่เปลี่ยนอยู่เหมือนกัน ถ้าใครอยากใช้หรือ upgrade เรามาดูกันว่ามีอะไรน่าสนใจบ้างครับ

  1. ต้องใช้ Node.js เวอร์ชัน 18 ขึ้นไป
  2. ไม่รองรับคำสั่ง app.del() แล้ว ให้ใช้ app.delete() แทน
  3. คำสั่ง res.json(obj, status) ก็เช่นเดียวกัน เลิกใช้แล้ว ให้ทุกคนเขียนแบบ chain แทน เช่น res.status(200).json({hello: ‘express’}) (บางคนเขียนอยู่แล้วใน V4 สบายไป)
  4. ใน V5 ถ้าเราใช้ Promise ที่ route และ middleware ไม่ต้องต้องใส่ try catch เพื่อ next(err) แล้วก็ได้ เพราะจะทำอัตโนมัติให้ ดูตัวอย่างโค้ด

    เก่า V4 เขียนแบบนี้
    app.get(‘/route’, async (req, res, next) => {
    try {
    const user = await getUserById(req.params.id)
    res.send(user);
    } catch (err) {
    next(err); // ต้องเขียนบรรทัดนี้
    }
    });

    ใหม่ V5 เขียนแค่นี้พอ
    app.get(‘/user/:id’, async (req, res, next) => {
    const user = await getUserById(req.params.id) // ระบบจะตรวจจับข้อผิดพลาดให้เราอัตโนมัติ
    res.send(user)
    })
  5. คำสั่ง res.status(code) จะใส่ตัวเลขได้ตั้งแต่ 100 ถึง 999 ตาม Node.js API จริงๆ แล้ว คือจะแจ้ง error ถ้า status code ไม่ใช่ตัวเลข เมื่อก่อนตัว V4 อยากใส่อะไรก็ได้ไม่แจ้ง error ใดๆ ฮ่าๆ
  6. คำสั่ง req.body return เป็น undefined แล้ว เมื่อก่อนใน V4 จะ return {} (object เปล่า) เป็นค่า default ครับ
  7. ลบคำสั่ง bodyParser() ออกจาก V5 แล้ว (จริงๆ deprecated  ตั้งแต่ V4)
  8. หลายคำสั่งจะเปลี่ยนเป็น พหูพจน์ (plural) แล้ว เช่น
    • req.acceptsCharset เปลี่ยนเป็น req.acceptsCharsets
    • req.acceptsEncoding เปลี่ยนเป็น req.acceptsEncodings
    • req.acceptsLanguage เปลี่ยนเป็น req.acceptsLanguages
  9. และบางคำสั่งก็เปลี่ยนเป็นตัวพิมพ์ใหญ่ด้วย เช่น res.sendfile แก้เป็น res.sendFile เป็นต้น
  10. แน่นอนถ้าใครอยากคิดอัปเกรดเป็น V5 นอกจากการเปลี่ยนแปลงต่างๆ แล้ว ยังต้องดูไลบรารีที่เราใช้ในโปรเจคด้วยว่ารองรับ V5 หรือยัง แต่ถ้าใครอยากลองเล่น หรืออัปเกรดเลยก็ลองใช้คำสั่ง

    npm install "express@>=5.0.1" --save

จริงๆ ยังมีอีกเยอะถ้าใครสนใจอ่านต่อดูได้ที่นี่นะครับ https://expressjs.com/2024/10/15/v5-release.html


โค้ชเอก

-ไม่อนุญาตให้คัดลอกเนื้อหาไปลงยัง Platform อื่นๆ โดยไม่ได้รับอนุญาต

โค้ชเอก

Coding Mentor

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

This site uses Akismet to reduce spam. Learn how your comment data is processed.