【发布时间】:2021-02-12 17:17:40
【问题描述】:
在我的项目中有一些聊天模块。我需要为每 N 条消息创建请求。如何在 frontend-node-mongo 中正确创建请求。例如,我收到了 10 条最后一条消息并向上滚动以查看以前的消息,我如何跳过它们并获取下 5 条消息?现在我可以无限制地收到所有消息。
节点
router.get(
'/messages',
async (req, res) => {
try {
const {user, destination} = req.query
let userFrom = await User.findOne({email: user})
let userTo = await User.findOne({email: destination})
let messages = await Message.find({
$or: [{senderId: userFrom, recipientId: userTo}, {senderId: userTo, recipientId: userFrom}]
})
return messages ? res.status(200).json(messages) : res.status(204)
} catch (e) {
res.status(500).json({message: "Error"})
}
})
【问题讨论】:
-
只获取最后 10 条消息是否重要,或者如果显示最后 10 条消息就足够了?您可以将所有消息存储在一个数组中,然后只打印出其中的 10 个。
-
最好从数据库中抽取一个小样本
标签: node.js mongodb express mongoose