| ▲ | dirkc 6 hours ago |
| You would think that sending HTTP requests is a basic capability, but I've had fun in many languages doing so. Long ago (2020, or not so long ago, depending on how you look at it) I was surprised that doing an HTTP request on node using no dependencies was a little awkward: const response = await new Promise( (resolve, reject) => {
const req = https.request(url, {
}, res => {
let body = "";
res.on("data", data => {
body += data;
});
res.on('end', () => {
resolve(body);
});
});
req.end();
});
|
|
| ▲ | wging 5 hours ago | parent | next [-] |
| These days node supports the fetch API, which is much simpler. (It wasn't there in 2020, it seems to have been added around 2022-2023.) |
| |
| ▲ | dirkc 4 hours ago | parent | next [-] | | Yes, thankfully! It's amusing to read what they say about fetch on nodejs.org [1]: > Undici is an HTTP client library that powers the fetch API in Node.js. It was written from scratch and does not rely on the built-in HTTP client in Node.js. It includes a number of features that make it a good choice for high-performance applications. [1] - https://nodejs.org/en/learn/getting-started/fetch | | | |
| ▲ | b450 an hour ago | parent | prev [-] | | Note that node-fetch will silently ignore any overrides to "forbidden" request headers like Host, since it's designed for parity with fetch behavior in the browser. This caused a minor debugging headache for me once. |
|
|
| ▲ | rzmmm 4 hours ago | parent | prev | next [-] |
| Web standards have rich support for incremental/chunked payloads, the original node APIs are designed around it. From this lens the Node APIs make sense. |
|
| ▲ | simlevesque 2 hours ago | parent | prev [-] |
| And you don't handle errors at all... |