An Interest In:
Web News this Week
- March 21, 2024
- March 20, 2024
- March 19, 2024
- March 18, 2024
- March 17, 2024
- March 16, 2024
- March 15, 2024
Fetch API has finally landed Node v18.0
This is exciting news for Javascript developers, we can use Fetch API in our Node application without the need of any libraries. Previously we needed to add additional packages like node-fetch or axios but we no longer need them anymore.
What is Fetch API?
The fetch API is a standard way of making web API HTTP requests. Its a promise based which supports many high-level HTTP features, while also focusing on the most common scenario: sending simple HTTP requests. Under the hood the API it comprises of are
fetch() entry point to initiate requests
Headers Represents response/request headers, allowing you to query them and take different actions depending on the results.
Request Represents a resource request.
Response Represents the response to a request.
Fetch API generally does work in browsers but now it does work in Node servers as well. We wont be needing any dependency as Node.js core will now support the API.
When the Fetch API is enabled, the following global functions and classes are made available: fetch(), Request, Response, Headers, FormData
Fetch implementation
Please make sure that you do have node version greater than v18.0 installed in your machine. Run the command node -v in your console to see which version you have running. If its less than 18 then you need to upgrade before you can use these new features.
We will implement three major request GET, POST, DELETE.
GET request
const getMethod = async () => { const res = await fetch('https://jsonplaceholder.typicode.com/posts'); if (res.ok) { const data = await res.json(); console.log(data); }};getMethod();
POST request
const postMethod = async () => { const data = { title: 'I love Node.js', body: 'Node.js is a JavaScript runtime built on Chrome\'s V8 JavaScript engine.', userId: 1, }; const res = await fetch("https://jsonplaceholder.typicode.com/posts", { method: 'POST', // *GET, POST, PUT, DELETE, etc. mode: 'cors', // no-cors, *cors, same-origin cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached credentials: 'same-origin', // include, *same-origin, omit headers: { 'Content-type': 'application/json; charset=UTF-8', // 'Content-Type': 'application/x-www-form-urlencoded', }, redirect: 'follow', // manual, *follow, error referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url body: JSON.stringify(data) // body data type must match "Content-Type" header }); await res.json();};postMethod();
DELETE request
const deleteMethod = async () => { const res = await fetch("https://jsonplaceholder.typicode.com/posts/1", { method: 'DELETE'});console.log(res);};deleteMethod();
Conclusion
We implemented fetch API operation with Node without the need for any library imports. The thing to note that under the hood that the fetch implementation is done based on another HTTP client, undici, which is actually a HTTP client written specifically for Node.js. It is an HTTP 1.1 only client.
This is a small improvement in the framework but brings a lot of joy for us developers. We just covered an introduction to Node.js 18 Fetch API. You can further dig deeper into this in official Node documentation here.
Happy coding!
Original Link: https://dev.to/ishanme/fetch-api-has-finally-landed-node-v180-1oal
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To