简介:本文详细讲解微信小程序云开发中云数据库和云函数的核心概念、创建步骤及基础使用方法,通过代码示例演示数据操作和函数调用,帮助开发者快速掌握小程序后端开发能力。
微信小程序云开发为开发者提供了一站式后端服务解决方案,其核心价值在于:
典型应用场景包括:用户数据存储、内容管理系统、实时协作应用等。
project.config.json
中确认已开启云开发能力cloudfunctions
目录选择「新建Node.js云函数」
// 集合权限配置示例
{
"read": "auth != null",
"write": "doc._openid == auth.openid"
}
// 插入数据
const db = wx.cloud.database()
db.collection('users').add({
data: {
name: '张三',
age: 25,
tags: ['VIP', 'new']
}
})
// 条件查询
const _ = db.command
db.collection('articles')
.where({
viewCount: _.gt(1000),
category: '科技'
})
.get()
cloudfunctions
目录新建Node.js函数(建议ES6语法)npm install --save wx-server-sdk@latest
// 获取微信开放数据
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
const { encryptedData, iv } = event
const res = await cloud.getOpenData({
list: [encryptedData],
iv
})
return res.list[0].data
}
cloud.logger()
记录运行日志
// feedbacks集合结构
{
"_id": "自动生成",
"content": "反馈内容",
"contact": "联系方式",
"images": ["云文件ID"],
"status": "pending/replied",
"createTime": "时间戳"
}
// 提交反馈
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
exports.main = async (event) => {
const { content, contact, images } = event
// 内容安全检查
if (!content || content.length > 500) {
return { code: 400, msg: '内容长度不符合要求' }
}
// 写入数据库
const db = cloud.database()
const res = await db.collection('feedbacks').add({
data: {
content,
contact,
images,
status: 'pending',
createTime: db.serverDate()
}
})
return { code: 200, data: res._id }
}
数据库查询超限:
skip()
+limit()
分页查询云函数冷启动:
权限管理最佳实践:
openid
cloud.callFunction
提示:所有代码示例需在小程序基础库2.2.3及以上版本运行,建议开发者工具保持最新版本。