Node.js与Express.js如何正确获取GET接口返回的响应数据?
解决方案
你调用fetch得到的response是原生Response对象,仅包含HTTP响应头、状态码等元信息,你返回的字符串存储在响应体流中,需要主动调用对应的解析方法读取内容。
修正后的前端代码
async function testing() { try { const response = await fetch('/get-test'); // 先判断请求是否成功(状态码2xx范围) if (!response.ok) { throw new Error(`请求出错,状态码: ${response.status}`); } // 因为服务端返回的是纯文本,调用text()方法读取响应体 const testString = await response.text(); console.log(testString); // 这里就能输出你要的 "get-test request string" } catch (err) { console.error('请求失败:', err); } } testing();
补充说明
- 不同的响应内容类型需要用不同的解析方法:
- 服务端返回JSON格式数据:调用
await response.json() - 服务端返回二进制文件/图片:调用
await response.blob() - 服务端返回表单格式数据:调用
await response.formData() - 服务端返回普通文本/字符串:调用
await response.text()
- 服务端返回JSON格式数据:调用
- 你之前在打印的Response对象里找不到目标值,是因为响应体默认是
ReadableStream流式格式,只有调用上述解析方法后才会被处理成可直接读取的内容。
内容的提问来源于stack exchange,提问作者JDS
相关产品推荐
相关产品推荐

