1. 云函数(不推荐,大概看看)
// 客户端
uniCloud.callFunction({
name: 'hellocf',
data: { a: 1 }
})
.then(res => {});
//服务端
// hellocf云函数index.js入口文件代码
'use strict';
exports.main = async (event, context) => {
//event为客户端上传的参数
let c = event.a + event.b
return {
sum: c
} // 通过return返回结果给客户端
}
2. 云对象(不推荐, 大概看看)
//客户端
const product = uniCloud.importObject("product-class")
methods: {
getdata() {
product.get().then(res => {
console.log(res)
this.tableData = res.data
this.loading = false
})
},
add(){
product.add(this.formData).then(res => {
this.getdata()
})
},
del(id){
console.log(id)
product.del(id).then(res => {
this.getdata()
})
},
edit(item){
product.edit(item).then(res => {
this.getdata()
})
}
}
//服务端增删改查
const db = uniCloud.database()
module.exports = {
_before: function () { // 通用预处理器
},
async get() {
return await db.collection("product-class").get()
},
add: async (data) => {
await db.collection("product-class").add(data)
},
del: async (id) => {
await db.collection("product-class").doc(id).remove()
},
edit: async(item) => {
let {id, name, sort, _id} = item
await db.collection("product-class").doc(_id).update({id, name, sort})
}
}
3 .客户端直连(推荐, 无需新建云函数,对象)
//新建DB-Schema(确定字段, 以及字段规则. 校验. 外键等)
[ 文档教程:](https://uniapp.dcloud.net.cn/uniCloud/schema)
{
"bsonType": "object",
"required": [], //必填字段校验
"permission": { //增删改查限制
"read": false,
"create": false,
"update": false,
"delete": false
},
"properties": {
"_id": {
"description": "ID,系统自动生成"
},
"title": {
"bsonType": "string", //字符串类型
"title": "标题", //标题,开发者维护时自用。在schema2code生成前端表单代码时,默认用于表单项前面的label
"description": "描述", //描述
"trim": "both", //去掉前后空白
"minLength": 2,
"maxLength": 17
},
"time": {
"bsonType": "timestamp", //时间类型
"title": "发布时间",
"defaultValue": { //服务器时间戳. 默认值
"$env": "now"
}
},
"hits": {
"bsonType": "int", //整数类型
"title": "阅读量",
"defaultValue": 22, //默认值
"minimum": 1950,
"maximum": 2020
},
"tel": {
"bsonType": "string",
"title": "手机号码",
"pattern": "^\+?[0-9-]{3,20}$",
"trim": "both"
},
}
}
//客户端
const db = uniCloud.database()
methods: {
addresume() {
db.collection("resume").add({
"name": "1",
"birth_year": 1949,
"tel": "1",
"email": "1"
}).then((res) => {
// res 为数据库查询结果
console.log(res)
}).catch((err) => {
console.log(err.message)
});
}
4. SQL语法(神器, 无需转码, 联表简单) == >= > < && ||直接使用
// 使用`jql`查询list表内`name`字段值为`hello-uni-app`的记录
db.collection('list')
.where('name == "hello-uni-app"')
.get()
.then((res) => {
// res 为数据库查询结果
}).catch((err) => {
// err.message 错误信息
// err.code 错误码
})
//新增
仅允许`collection().add()`这样的形式
//修改
db.collection('xx').doc('xxx').update({})
db.collection('xx').where('xxxx').update({})
//删除
db.collection('xx').doc('xxx').remove()
db.collection('xx').where('xxxx').remove()
//jql语句内云端环境变量
$cloudEnv_uid 用户uid,依赖uni-id
$cloudEnv_now 服务器时间戳
$cloudEnv_clientIP 当前客户端IP