You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从fetch()返回的ReadableStream中读取字符串数据?

在Node.js中把fetch返回的ReadableStream转为字符串

你不需要直接操作res.body这个ReadableStream,fetch的Response对象自带了便捷方法来解析流内容,根据响应格式选择对应的方法即可:

1. 解析为纯文本字符串

如果错误响应是文本、HTML这类格式,用text()方法(异步方法,需加await):

const res = await fetch(url);
if (!res.ok) {
  console.log('Status:', res.status);
  console.log('StatusText:', res.statusText);
  const errorBody = await res.text();
  console.log('错误响应内容:', errorBody);
}

2. 解析为JSON对象

如果错误响应是JSON格式,用json()方法,同时可以加个异常捕获防止解析失败:

const res = await fetch(url);
if (!res.ok) {
  console.log('Status:', res.status);
  console.log('StatusText:', res.statusText);
  try {
    const errorBody = await res.json();
    console.log('错误响应内容:', errorBody);
  } catch (err) {
    // 解析JSON失败时,回退到文本格式读取
    const errorText = await res.text();
    console.log('错误响应内容(文本格式):', errorText);
  }
}

补充说明

text()和json()会自动完成ReadableStream的读取、解析工作,不需要手动处理流的锁定、分段读取等底层逻辑,是最省心的处理方式。

内容的提问来源于stack exchange,提问作者delete

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 19:08:17