云开发(微信-小程序)笔记(十四)---- 收藏,点赞(上)
云开发(微信-小程序)笔记(十四)---- 收藏,点赞(上)
在前面的章节中,我们已经学习了如何创建一个基本的微信小程序,并且掌握了一些常用的功能,如登录、数据存储等。在本章节中,我们将继续深入探讨一些更复杂的功能:收藏和点赞。
1. 收藏
在我们的应用中,用户可以收藏某个文章或视频,这样他们就可以轻松地找到这些内容。我们需要创建一个收藏列表,并且能够添加、删除收藏项。
首先,我们需要定义一个数据结构来存储收藏项:
```json// 收藏项的数据结构{
"id": string, // 收藏项的唯一标识符 "type": string, // 收藏类型(文章或视频)
"contentId": string, // 被收藏内容的ID "userId": string // 收藏用户的ID}
```
接下来,我们需要创建一个收藏列表,并且能够添加、删除收藏项。我们可以使用云函数来实现这一点:
```javascript// 云函数:添加收藏项exports.addCollect = async (event) => {
const db = event.db;
const userId = event.userId;
const contentId = event.contentId;
const type = event.type;
// 检查是否已经存在相同的收藏项 const existingCollect = await db.collection('collects').findOne({
userId,
contentId,
type });
if (existingCollect) {
return { code:0, message: '已存在相同的收藏项' };
}
// 添加新的收藏项 const newCollect = {
id: db.createId(),
userId,
contentId,
type };
await db.collection('collects').insertOne(newCollect);
return { code:0, message: '添加成功' };
};
// 云函数:删除收藏项exports.deleteCollect = async (event) => {
const db = event.db;
const userId = event.userId;
const contentId = event.contentId;
const type = event.type;
// 删除指定的收藏项 await db.collection('collects').deleteOne({
userId,
contentId,
type });
return { code:0, message: '删除成功' };
};
```
2. 点赞
点赞功能与收藏类似,也需要创建一个数据结构来存储点赞项:
```json// 点赞项的数据结构{
"id": string, // 点赞项的唯一标识符 "type": string, // 点赞类型(文章或视频)
"contentId": string, // 被点赞内容的ID "userId": string // 点赞用户的ID}
```
我们可以使用云函数来实现点赞功能:
```javascript// 云函数:添加点赞项exports.addLike = async (event) => {
const db = event.db;
const userId = event.userId;
const contentId = event.contentId;
const type = event.type;
// 检查是否已经存在相同的点赞项 const existingLike = await db.collection('likes').findOne({
userId,
contentId,
type });
if (existingLike) {
return { code:0, message: '已存在相同的点赞项' };
}
// 添加新的点赞项 const newLike = {
id: db.createId(),
userId,
contentId,
type };
await db.collection('likes').insertOne(newLike);
return { code:0, message: '添加成功' };
};
// 云函数:删除点赞项exports.deleteLike = async (event) => {
const db = event.db;
const userId = event.userId;
const contentId = event.contentId;
const type = event.type;
// 删除指定的点赞项 await db.collection('likes').deleteOne({
userId,
contentId,
type });
return { code:0, message: '删除成功' };
};
```
总结
在本章节中,我们学习了如何创建收藏和点赞功能。我们定义了数据结构来存储收藏项和点赞项,并且使用云函数来实现添加、删除等操作。这些功能可以帮助用户轻松地找到他们感兴趣的内容,并且能够与其他用户进行互动。
下一章节
在下一章节中,我们将继续探讨更多的功能,如评论、分享等。我们还将学习如何使用云函数来实现更复杂的逻辑和数据处理。