代码格式

在云函数中使用 Node.js 编程,需要定义一个 Node.js 函数作为入口,一个简单的函数定义如下:

  1. exports.main = function helloWorld(event, callback) {
  2. let name = event.data.name
  3. callback(null, 'hello ' + name)
  4. }

云函数已支持 async/await 语法,请参考文档

云函数执行与返回机制,请参考Node.js 事件循环

参数介绍

event

类型: Object

此参数包含了触发事件的相关数据:

包含字段类型说明
data任何 js 合法类型在用户调用云函数时传入的参数
eventTypeString提供给用户的触发来源的信息,包括 sdk/open_api/user_dash/cloud_function 等
jobIdNumber当前函数执行的 id
memoryLimitInMBNumber当前函数的内存资源限制
miniappIdNumber云函数所属小程序 id
requestObject若云函数请求来自 BaaS SDK, 此处存储请求用户及其他客户端信息
timeLimitInMSNumber当前函数的 timeout 时间

request 结构说明

参数类型描述
meta.ip_addressObject发起云函数请求的 IP
meta.user_agentString发起云函数请求设备的 userAgent
user.avatar_urlString发起云函数请求的用户头像
user.nicknameObject发起云函数请求的用户昵称
user.idObject发起云函数请求的用户 ID

request 示例如下

  1. {
  2. "meta": {
  3. "ip_address": "123.61.205.211",
  4. "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.2 Safari/605.1.15"
  5. },
  6. "user": {
  7. "avatar_url": "http://cdn.ifanr.cn/ifanr/default_avatar.png",
  8. "id": 135570997,
  9. "nickname": "ifanr"
  10. }
  11. }

callback

类型: (err: any, data: any) => void

可选项。使用此参数用于将你所希望的信息返回给调用方。格式如 callback(err, data),err 为错误信息,可为 Error 类型或字符串,没有出错的情况下,可设置为 null;data 为函数成功执行的结果信息。

日志

你可以在程序中使用如下几种不同的日志级别来完成日志输出:

  1. console.log(message)
  2. console.error(message)
  3. console.warn(message)
  4. console.info(message)

日志格式为:ISOString + 日志级别 + message,如下示例:

  1. 2017-07-05T05:13:35.920Z INFO hello world

已包含的库及使用方法

目前支持在云函数中对知晓云中的数据,内容和文件进行操作,同时也支持调用其它云函数,发送邮件和模板消息等功能,使用如下:

  1. exports.main = function (event, callback) {
  2. let AddressBook = new BaaS.TableObject(7)
  3. AddressBook.get('591c2b89ae63c874d6e37bc7').then(res => {
  4. callback(null, res.data)
  5. }, err => {
  6. callback(err)
  7. })
  8. }

如需其他第三方库,请使用本地代码打包并使用命令行工具上传