Node.js 18 mới ra mắt dev nên chú ý chức năng này?

Nội dung bài viết

Video học lập trình mỗi ngày

Global fetch API hiện đã có phiên bản mới nhất của JavaScript runtime Node.js. Node.js 18 bao gồm bản cập nhật cho công cụ JavaScript V8, với tính năng fetch được bật theo mặc định và module test.

Node.js 18 phát hành global fetch API

Với global fetch API và module test thì có lẽ anh em dev chúng ta rất vui mừng hay còn nói kiểu khác là sướng không thể tả. Vậy nó sướng thế nào, anh em theo tôi thử một ví dụ code sau về fetch api.

Nói về fetch thì anh em hầu như ai cũng biết browser hỗ trợ top await nên việc sử dụng fetch với async/await là đã không hề bàn cãi. Ví dụ sau mô tả quá trình thực hiện trong console browser.

const {login, id} = await (await fetch('https://api.github.com/users/anonystick')).json()
console.log({login, id})
//Output
{login: 'anonystick', id: 48472372}

Xem video Senior sử dụng async await fetch api thực sự pro nhu thế nào? nếu bạn không hiểu vì sao await lại thêm await.

Vậy giả sử nếu như bạn muốn làm điều đó trong node.js thì sao. Từ phiên bản node.js v17 trở xuống thì bạn phải sử dụng những package như node-fetch hay axios để làm được điều tương tự như trên. Đây là ví dụ về cách lấy {login, id} khi sử dụng node-fetch trong version v17.

import  fetch  from  'node-fetch';

async  function  getDate()  {
const  response  =  await  fetch('https://api.github.com/users/anonystick');
const  {login,  id}  =  await  response.json()
console.log({login,  id})
}
getDate(); 
//Output
{login: 'anonystick', id: 48472372}

Nhưng với Node.js 18 thì tính năng fetch đã được hỗ trợ vào function global. Cho nên anh em dev không cần instal thêm một package nào khác mà nói cách khác là sử dụng như cách mà chúng ta chạy trên console browser luôn. Code ví dụ sau thể hiện điều đó.

async  function  getDate()  {
const  response  =  await  fetch('https://api.github.com/users/anonystick');
    if(response.ok){
        const  {login,  id}  =  await  response.json()
        console.log({login,id});
    }
}
getDate()
//Output
{login: 'anonystick', id: 48472372}

Có thể nói đó là lý do vì sao tôi gắn bó với node.js từ 2015 đến nay, bởi vì khó tìm một cái thứ hai. I love node.js

Có thể bạn đã bị missing