您的位置:首页 - 文章 - UniApp/uniCloud - 正文

uniCloud随笔

官网:https://uniapp.dcloud.io/uniCloud/README

uniCloud是DCloud在阿里云和腾讯云的serverless服务上封装而成的。

它包含IaaS层(由阿里云和腾讯云提供硬件和网络)和PaaS层(由DCloud提供开发环境)。

开发者可以自主选择uniCloud的硬件和网络资源的供应商,在阿里云版和腾讯云版之间切换。

开户和付费虽然通过DCloud渠道,但实际上开发者自动在云厂商处建立了账户和充值了余额。DCloud只获取云服务厂商的返佣。

开发时虽使用DCloud的工具,但应用上线时,手机端是直连阿里云或腾讯云的serverless,不经由DCloud的服务器。

第一步:创建uniapp项目

第二步:关联云空间

第三步:创建云函数

'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => { //event为客户端上传的参数 const collection = db.collection('unicloud-test') // 获取表'unicloud-test'的集合对象 const res = await collection.limit(10).get() // 获取表中的10条数据,结果为json格式 return res // 返回json给客户端
};

第四步:运行云函数

  • 上传部署云函数:将云函数部署到uniCloud服务空间,不会运行。(快捷键Ctrl+u)
  • 上传并运行云函数:先上传云函数,并在云端立即执行该云函数。在部署后同时运行,并打印日志出来。有延时,调试时不如本地运行云函数快捷。
  • 本地运行云函数:在HBuilderX自带的node环境中运行选中的云函数。云函数连接的数据库和云存储,仍然在云端。(快捷键Ctrl+u)(从HBuilderX 2.8.1起支持)
  • 客户端连接本地云函数:开启一个uniCloud本地服务,运行前端项目时在HBuilderX控制台可切换访问云端云函数还是本地云函数。(从HBuilderX 3.0.0起支持)

第五步:调用云函数

时区问题

uniCloud云端的云函数使用的时区是utc+0,本地运行时使用的是本机时间,中国一般是+8。在使用“时间戳”时两者没有差异,但如果要获取年、月、日、小时要注意时区的差异。

以下方式可以获取指定时区的年、月、日、小时,可以参考一下

配置运行参数

手机端调用云函数

test 函数

'use strict';
exports.main = async (event,conrext) => {	console.log("event:",event)	//const hour = getOffsetDate(8).getHours()	//返回数据给客户端	return event
};

promise方式

callback方式

uniCloud.callFunction({

name: 'test', data: { a: 1 }

}) .then(res => {

console.log(JSON.stringify(res))

});

 

uniCloud.callFunction({

name: 'test', data: { a: 1 },

success(){},

fail(){},

complete(){}

});

本文原创,作者:西决,其版权均为品创网络所有。如需转载,请注明出处:https://www.sxpcwlkj.com/unicloud01/

发表评论