要读取JSON响应,必须使用response.JSON()方法。你可以参考MDN关于获取的文档来了解更多信息。
我有一个从本地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。
fetch("http://localhost:7007/getTestData")
.then(response => response.json())
.then(data => console.log(data));