
TTLab Academy Blogs
Có gì mới ở Node.js v18?

Mục lục
Tại mỗi phiên bản mới của Node.js thường cung cấp cải tiến về hiệu suất, tính năng mới. Vậy có gì mới ở Node.js v18? Cùng Tokyo Tech Lab Academy tìm hiểu qua bài viết dưới đây nha!
Đầu tiên phải nói đến fetch - tính năng được cộng đồng mạng yêu thích nhất
Từ trước đến nay, khi cần thực hiện request API từ ứng dụng node.js, chúng ta thường phải xài các thư viện ngoài như node-fetch
, axios
…, tuy nhiên, kể từ bây giờ, chúng ta đã có thể sử dụng fetch như là 1 thư viện native trong node.js với cú pháp vô cùng đơn giản như dưới đây:
Bên cạnh fetch thì ở version này, bạn cũng có thể sử dụng FormData
, Headers
, Request
, Response
như là các global interface/class.
Việc sử dụng fetch trong node.js hoàn toàn tương tự như sử dụng fetch ở browser, bạn có thể tham khảo tại đây: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
Trong khuôn khổ bài viết này mình chỉ giới thiệu về các tính năng mới của node.js 18, để đào sâu hơn về fetch và sử dụng fetch trong dự án node.js như thế nào (ví dụ các thêm interceptor, …) mình sẽ viết một bài chuyên sâu sau, các bạn nhớ theo dõi nhé.
Một tính năng nữa mình nghĩ là nhỏ nhưng khá hữu ích cho chúng ta khi xử lý mảng đó là thêm các function findLast, findLastIndex
Trước nay thì node.js chỉ cung cấp sẵn các hàm để tìm phần tử đầu tiên, nếu muốn tìm phân tử cuối cùng thì các bạn thường làm như thế nào? Kể từ bây giờ các bạn có thể làm như dưới đây, rất đơn giản phải không nào?
--watch
Các bạn lập trình viên node.js chắc đã quá quen nodemon
, công cụ sử dụng trong quá trình phát triển để tự động reload lại ứng dụng node.js khi có bất kỳ file nào thay đổi.
Nhưng từ nay các bạn có thể quên nodemon được rồi nhé, node.js 18 đã tích hợp sẵn tham số --watch
khi chạy ứng dụng, muốn reload khi có bất kỳ thay đổi file bạn chỉ cần chạy node --watch
, quá tiện phải không nào
Test runner module (đang trong quá trình thử nghiệm)
Trong tương lai không xa, khi viết test trong dự án chúng ta có lẽ cũng chẳng cần phải import các thư viện như mocha, jest … nữa, cứ thế sử dụng các module native của node.js là đủ rồi. Hãy xem 01 ví dụ minh họa cách viết nhé:
Web Streams API
Trước nay, chúng ta luôn phải download toàn bộ file (video, image, …) và đợi để xử lý việc chuyển đổi (deserialized) sang định dạng phù hợp, tức là chúng ta chỉ có thể xử lý dữ liệu sau khi nhận đầy đủ dữ liệu trong file về.
Với Web Streams API, chúng ta có thể truy cập vào luồng dữ liệu trong quá trình truyền tải mà cũng không cần phải tạo buffer. Thêm vào đó, Web Streams API giúp chúng ta phát hiện ra được khi nào thì một luồng dữ liệu (stream) bắt đầu hoặc kết thúc, xâu chuỗi các luồng dữ liệu lại với nhau, xử lý lỗi xảy ra, hủy bỏ luồng dữ liệu nếu cần thiết và thích ứng linh hoạt với tốc độ đọc dữ liệu.
Node.js 18 cung cấp các api Web Streams trong phạm vi global (tức là bạn không cần phải khai báo khi sử dụng)
Dưới đây là 1 ví dụ về ReadableStream
và ReadableStreamDefaultController
. ReadableStream
để chứa dữ liệu còn ReadableStreamDefaultController
sẽ điều khiển trạng thái và hàng đợi trong ReadableStream
Ngoài 2 api trên thì Node.js 18 còn cung cấp các API dưới đây ở phạm vi toàn cục (global):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tokyo Tech Lab Academy vừa giới thiệu 5 tính năng hay được sử dụng trong quá trình phát triển. Bên cạnh các tính năng này, node.js 18 cũng đưa ra thêm nhiều tính năng thú vị khác nữa, các bạn có thể truy cập https://nodejs.org/en/blog và đọc kỹ hơn nhé.
Hãy bấm theo dõi Tokyo Tech Lab Academy để cập nhập thông tin hữu ích nhanh chóng!

© 2023 Tokyo Tech Lab Academy. All Rights Reserved.