来自服务器的Mongoose响应是ReadableStream



我有一个从本地MongoDB获取数据的express服务器。

提取似乎有效,我可以记录提取的数据:

app.get("/getTestData", async (req, res) => {
const data = await ContentDataSchema.find();
console.log(`Mongo data: ${data})`);
res.json(data);
});

这将在服务器控制台上打印来自DB的正确数据,该数据应该是ContentDataSchema的对象数组。

然而,当试图从客户端获取这些数据时:

useEffect(() => {
fetch("http://localhost:7007/getTestData")
.then((response) => {
console.log(`RESPONSE ${response.body}`)

})
.catch((error) => console.log(`SERVER ERROR ${error})`));
}, []);

控制台输出为RESPONSE [object ReadableStream]如果我尝试登录console.log(RESPONSE ${JSON.stringify(response.body)})那么输出就是{}。使用Postman,我可以看到调用相同端点的正确预期响应。

客户端的预期输出将是来自DB的实际json。

要读取JSON响应,必须使用response.JSON()方法。你可以参考MDN关于获取的文档来了解更多信息。
fetch("http://localhost:7007/getTestData")
.then(response => response.json())
.then(data => console.log(data));

最新更新