From ca6a3ddd87429c0ee139645e0f8a1fd7b27dbbe4 Mon Sep 17 00:00:00 2001 From: NunoMCP Date: Fri, 7 Nov 2025 22:54:38 +0000 Subject: [PATCH] docs(learn): correct the example code for Streaming Responses with Undici (#8327) * parse JSON at the end of the stream and use status code from the response Signed-off-by: NunoMCP * Add log Signed-off-by: NunoMCP * Update apps/site/pages/en/learn/getting-started/fetch.md Co-authored-by: Aviv Keller Signed-off-by: NunoMCP * make prettier happy Signed-off-by: NunoMCP * trigger build --------- Signed-off-by: NunoMCP Co-authored-by: Aviv Keller --- .../pages/en/learn/getting-started/fetch.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/apps/site/pages/en/learn/getting-started/fetch.md b/apps/site/pages/en/learn/getting-started/fetch.md index 61c0207d0072b..86bbd476538cd 100644 --- a/apps/site/pages/en/learn/getting-started/fetch.md +++ b/apps/site/pages/en/learn/getting-started/fetch.md @@ -135,14 +135,14 @@ try { [Streams](https://nodejs.org/docs/v22.14.0/api/stream.html#stream) is a feature in Node.js that allows you to read and write chunks of data. ```js -import { Writable } from 'stream'; +import { Writable } from 'node:stream'; import { stream } from 'undici'; async function fetchGitHubRepos() { const url = 'https://api.github.com/users/nodejs/repos'; - const { statusCode } = await stream( + await stream( url, { method: 'GET', @@ -151,35 +151,31 @@ async function fetchGitHubRepos() { Accept: 'application/json', }, }, - () => { + res => { let buffer = ''; return new Writable({ write(chunk, encoding, callback) { buffer += chunk.toString(); - + callback(); + }, + final(callback) { try { const json = JSON.parse(buffer); console.log( 'Repository Names:', json.map(repo => repo.name) ); - buffer = ''; } catch (error) { console.error('Error parsing JSON:', error); } - - callback(); - }, - final(callback) { console.log('Stream processing completed.'); + console.log(`Response status: ${res.statusCode}`); callback(); }, }); } ); - - console.log(`Response status: ${statusCode}`); } fetchGitHubRepos().catch(console.error);