如何在Express.js中从响应对象里获取返回的数据?
解决方法
fetch API 返回的第一个 Promise 结果是 Response 对象,它包含响应元数据(状态码、头部等),而非直接的响应内容。要获取"zsamo"文本,需调用 Response 对象的 text() 方法(服务器返回纯文本场景适用),该方法会返回新的 Promise,解析后即为响应文本。
修改后的客户端代码:
fetch("http://localhost:3000/zsa", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(data), // 注意提前定义data变量,否则会报错 }) .then((response) => response.text()) // 先将响应解析为文本 .then((textData) => { console.log(textData); // 此处会打印"zsamo" }) .catch((error) => { console.error('请求出错:', error); // 建议添加错误处理,避免请求失败无提示 });
补充说明
- 若服务器返回 JSON 格式数据,需改用
response.json()解析;当前场景返回纯字符串,text()更匹配。 - 服务器端可主动设置响应类型头部,让客户端更明确:
app.post('/zsa', (req, res) => { res.type('text/plain'); // 指定响应为纯文本类型 res.send("zsamo"); });
内容的提问来源于stack exchange,提问作者Barta
相关产品推荐
相关产品推荐

