Skip to content
CodingThailand's Blog
CodingThailand's Blog

by โค้ชเอก

  • Home
  • About Me
  • CodingThailand.com
CodingThailand's Blog

by โค้ชเอก

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

30/10/202402/04/2025

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 อื่นๆ โดยไม่ได้รับอนุญาต

Views: 927

JavaScript Node.js Express.jsJavaScriptNode.js

Post navigation

Previous post
Next post

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

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

Posts ล่าสุด

  • การใช้งาน Prefetching ใน Next.js
  • 14 ข้อคิด เพื่อการเป็น Developer ที่ดีขึ้น จาก “Lee Robinson”
  • เคยเจอ “TypeError: Cannot read property ‘x’ of undefined” หรือเปล่า
  • บันทึกการเขียนเว็บไซต์ใหม่ในรอบ 10 ปี ย้ายมาใช้ Next.js
  • ทำไมการจัดการ Error ใน JavaScript ถึงเป็นเรื่องท้าทาย?

Recent Comments

    หมวดหมู่

    • .NET
    • AI
    • Android
    • Angular
    • Angular 2
    • Coding
    • CSS
    • Database
    • Editor
    • Flutter
    • Git
    • HTML5
    • Ionic 2
    • Ionic 4
    • Ionic Framwork
    • JavaScript
    • Laravel
    • Laravel 5
    • Next.js
    • Node.js
    • PHP
    • PHP 7
    • Plugins
    • React
    • React Native
    • Template
    • Tools
    • TypeScript
    • UI
    • Uncategorized
    • Vue.js
    • XAMPP
    • Yii
    • คอร์สเรียน
    • แรงบันดาลใจ

    Archives

    • July 2025
    • April 2025
    • November 2024
    • October 2024
    • April 2020
    • February 2020
    • August 2019
    • September 2018
    • August 2018
    • February 2018
    • November 2017
    • October 2017
    • August 2017
    • July 2017
    • April 2017
    • October 2016
    • August 2016
    • May 2016

    Tags

    .NET android Angular Angular 2 Atom Coding Coding Standard CSS CSS 3 Datepicker Express.js extensions Git HTML HTML5 Ionic2 JavaScript Laravel5 laravel 5.5 MariaDB Material Design MySQL Node.js npm PHP PHP7 plugins PouchDB recaptcha Restful sail.js template typescript typscript XAMPP Yii2

    ผู้เยี่ยมชม

    • 0
    • 1,818,146
    • 547,556
    • 927
    ©2025 CodingThailand's Blog | WordPress Theme by SuperbThemes