【发布时间】:2021-04-17 23:55:01
【问题描述】:
我正在尝试将对象附加到节点后端的 GET 请求,但是当我从后端控制台记录 req.body 时,它显示 req.body 为空。这是我的反应代码:
useEffect(() => {
const fetchMessages = async () => {
const { data } = await axios.get('/api/messages', {
sender: '5ffadc2710d93b21a812c33b',
receiver: '5ffadc1510d93b21a812c339',
});
setMessages(data.messages);
console.log(data);
};
fetchMessages();
}, []);
我将带有密钥发送者和接收者的对象附加到后端以获取发送者和接收者之间的消息。这是我的后端代码,在第 4 行,我在控制台记录 req.body,它返回一个空对象。
Router.route('/').get(
asyncHandler(async (req, res) => {
const { sender, receiver } = req.body;
console.log(req.body);
const user = await User.findOne({ _id: sender });
const user2 = await User.findOne({ _id: receiver });
let sentMessages = await Message.find({ sender, receiver });
let receivedMessages = await Message.find({
sender: receiver,
receiver: sender,
});
let messages = sentMessages.concat(receivedMessages);
messages.sort((a, b) => a.time.getTime() - b.time.getTime());
res.status(200).json({
sender: user,
receiver: user2,
messages,
});
})
);
【问题讨论】:
-
GET 请求不应包含有意义的负载,使用 POST