简介

JavaScript 代码,和普通的Node.js开发一样,熟悉Node.js的开发者可以直接上手。 如下是将传入的两个参数求和并返回客户端的云函数代码示例:

  1. 'use strict';exports.main = async (event, context) => { //event为客户端上传的参数 return { sum:event.a + event.b }}

event对象,一个是context对象。event指的是触发云函数的事件,当客户端调用云函数时,event就是客户端调用云函数时传入的参数。context 对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。uniCloud会自动将客户端的操作系统(os)、运行平台(platform)、应用信息(appid)等注入context中,开发者可通过context获取每次调用的上下文,如下是一个示例:

  1. 'use strict';exports.main = async (event, context) => { //event为客户端上传的参数 ... //context中可获取客户端调用的上下文 let os = context.OS //客户端操作系统,返回值:android、ios 等 let platform = context.PLATFORM //运行平台,返回值为 mp-weixin、app-plus等 let appid = context.APPID // manifest.json中配置的appid ... //其它业务代码}

访问数据库

规范

访问HTTP服务

uniCloud提供了uniCloud.httpclient供开发者使用。无需额外依赖,就可以请求任何 HTTP 和 HTTPS 协议的 Web 服务。uniCloud.httpclient返回的是一个urllib实例。 uniCloud.httpclient.request(URL,requestOptions) requestOptions参数说明 示例代码

  1. const res = await uniCloud.httpclient.request(apiUrl, { method: 'POST', data: { test: 'testValue' }, dataType: 'json' })console.log(res)

使用npm

Node.js,因此我们可以使用 npm 安装第三方依赖。 注意:鉴于阿里云的限制,目前仅支持全量上传云函数(整个 node_modules文件夹全部上传),因此提醒大家,精简依赖,否则可能会每次上传时间很慢,影响开发体验。 Tips: -

客户端调用云函数

uniCloud.callFunction调用云函数,callFunction定义如下:

请求参数

响应参数

示例代码

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

目前仅支持客户端调用云函数,即将支持云函数调用云函数。

注意事项

Node.js应用很大的区别。 Node.js开发中将部分信息存储本地硬盘或内存的方案就不再适合,建议通过云数据库或云存储的方案替代。 另一方面,鉴于云函数的弹性调配机制,为提高运行性能,部分云厂商在一定时间周期内会复用相同的云函数实例,此时为避免数据污染,建议使用无状态的风格编写函数代码。 count作为全局变量,当多次调用该云函数时,可能会出现变量累加的情况(实例未复用时,每次返回0,若实例被复用,则可能返回1、2、3等各种意外情况) 云函数中使用的时区是

  1. let count = 0;module.exports = async (event) => { return count++ //此示例为错误示例 //云函数实例未复用时,每次返回0 //若实例被复用,则可能返回1、2、3等各种意外情况}

云函数中调用云函数

用法同客户端调用云函数,不支持callback形式

请求参数

响应参数

示例代码

  1. let callFunctionResult = await uniCloud.callFunction({ name: "test", data: { a: 1 }})

在 GitHub 上编辑此页面!