您的位置:首页 > 教育 > 培训 > 浙江人才网_如何做社群营销模式_站长推荐_seo关键词排名优

浙江人才网_如何做社群营销模式_站长推荐_seo关键词排名优

2025/5/21 8:03:46 来源:https://blog.csdn.net/guai_guai_guai/article/details/143953593  浏览:    关键词:浙江人才网_如何做社群营销模式_站长推荐_seo关键词排名优
浙江人才网_如何做社群营销模式_站长推荐_seo关键词排名优

uniCloud 是 DCloud 联合阿里云、腾讯云、支付宝云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。

普通云函数

callFuction方式云函数,也称之为普通云函数

uni-app的前端代码,不再执行uni.request联网,而是通过uniCloud.callFunction调用云函数。

callFunction方式避免了服务器提供域名,不暴露固定ip,减少被攻击的风险

uniCloud.callFunction

该方法需要一个json对象作为参数,其中包含两个字段

// promise方式
uniCloud.callFunction({name: 'hellocf',data: { a: 1 }}).then(res => {});// callback方式
uniCloud.callFunction({name: 'hellocf',data: { a: 1 },success(){},fail(){},complete(){}
});

云函数的入参

客户端callFunction调用云函数时,云函数通过入参接收客户端数据,通过头信息上下文获取客户端信息,经过业务逻辑处理后给客户端返回结果

// 客户端调用云函数并传递参数
uniCloud.callFunction({name: 'hellocf',data: {a:1,b:2}}).then(res => {});
// hellocf云函数index.js入口文件代码
'use strict';
exports.main = async (event, context) => {//event为客户端上传的参数let c = event.a + event.breturn {sum: c} // 通过return返回结果给客户端
}

云函数的传入参数有两个,一个是event对象,一个是context对象。

  • event指的是触发云函数的事件,当客户端调用云函数时,event就是客户端调用云函数时传入的参数
  • context对象包含了本次请求的上下文,包括客户端的ip,ua,appId等信息,以及云函数的环境情况,调用来源source等信息

event对象

vent对象,可以理解为客户端上行参数中的json对象。在使用uni-id且登录成功后,会自动多添加了一个uniIdToken属性。

可以通过 event.uniIdToken 获取 uni-id 的 token,如下:

'use strict';
exports.main = async (event, context) => {let token = event.uniIdToken // 客户端uni-id token
}

context对象

context对象的属性清单如下:

云数据库

uniCloud提供了一个JSON格式的文档型数据库,顾名思义,数据库中的每一条记录都是一个JSON格式的文档,他是nosql非关系型数据库

创建空表

 

云函数通过传统方式操作数据库

获取集合的引用

‘use strict’
const db=uniCloud.database();//连接数据库
// 获取对`user`集合的引用
exports.main = async (event, context){// let res = await db.collection('users').get();// let res=await db.collection("users").count()let res=await db.collection("users").add({ // 单次插入name:'小红',gender:'女'})let res=await db.collection("users").add([{},{}])return res;
}

最后所return的东西就会被前端所接收到,从而渲染到页面上 

集合Collection

添加小案例

 

提交数据的时候要整成对象提交

doc操作可获得某id的详细信息,db.collection("users").doc("id").get()

db.command指令

'use strict';
const db=uniCloud.database()
const dbCmd = db.command;
exports.main = async (event, context) => {//event为客户端上传的参数// console.log('event : ', event)// let res=await db.collection('users').limit(5).skip(5).get()// 获取5个数据,过滤掉前5条数据,从第六条数据开始获取(skip())// let res=await db.collection('users').orderBy('_id','desc').get()// desc为倒序获取,asc为正序(默认)// let res=await db.collection('users').field({"name":true}).get()// 指定需要哪些字段,不可混用,只能明确说明用和不用let res = await db.collection('users').where({// age:dbCmd.eq(30)//等同于相等,查询数据库中年龄为30的数据age:dbCmd.gt(20).and(dbCmd.lt(40)) //大于20并且小于40age:dbCmd.and(gt(20),dbCmd.lt(40)) //大于20并且小于40age:dbCmd.or(lt(20),dbCmd.gt(40)) //大于40或者小于20})//返回数据给客户端return event
};

正则表达式查询

根据正则表达式进行筛选

'use strict';
const db=uniCloud.database()
const dbCmd = db.command;
exports.main = async (event, context) => {let {keyword} = eventlet res = await db.collection('users').where({name:new RegExp(keyword,"ig")})//返回数据给客户端return event
};

update更新数据库 

'use strict';
const db = uniCloud.database()
const dbCmd = db.command;
exports.main = async (event, context) => {//event为客户端上传的参数let res=await db.collection('users').where({_id:dbCmd.in(['id1','id2'])//批量进行修改}).update({// mail:'mail'tabs:{job:'歌手'}})//返回数据给客户端return event
};

给数组追加数据

使用command指令的方法,unshift,push,pop,shift

从第二个位置开始插入

给push里面传一个对象,包含插入的内容和要从哪里开始插入的索引

inc指令

更新指令,用于指示字段自增某个值,这是个原子操作,使用这个操作指令而不是先读数据,再加,再写回的好处是:

  1. 原子性:多个用户同时写,对数据库来说都是将字段加一,不会有后来者覆写前者的情况
  2. 减少一次请求:不需先读再写 
'use strict';
const db = uniCloud.database()
const dbCmd = db.command;
exports.main = async (event, context) => {//event为客户端上传的参数let res=await db.collection('users').where({_id:dbCmd.in('id1')//批量进行修改}).update({// mail:'mail'// tabs:{// 	job:'歌手'// }like:dbCmd.unshift(['篮球','演习']) //向前追加like:dbCmd.push(['打游戏']) //向前追加like:dbCmd.pop() // 删除末尾like:dbCmd.shift() // 删除开头love:dbCmd.inc(3)// 给该字段增加3like:dbCmd.push({each:["aaa","bbb"],position:1//从索引为1的地方开始插入})})//返回数据给客户端return event
};

set

覆写记录,会删除操作的记录中的所有字段,创建传入的字段,如果操作的记录不存在,会自动创建新的记录

set和update的区别:

set是直接覆盖原有的数据,而update只是修改传进去的字段的值

删除文档 

通过指定文档ID删除: collection.doc(_id).remove()(单次删除)

批量删除使用where(使用command指令)

const db=uniCloud.database();
const dbCmd=db.command;
exports.main=async (event,context)=> {return await db.collection("users").where({// name:'王五'_id:dbCmd.neq(-1) //删除数据库中所有数据}).remove()
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com