Skip to content
本页目录

云函数 API

云函数模板

每个云函数都需要 module.exports 一个 async 函数,这个函数包含 paramscontext 两个变量。例如:

js
module.exports = async function(params, context) {
  return {
    message: 'Hi, AirCode.',
  };
}
module.exports = async function(params, context) {
  return {
    message: 'Hi, AirCode.',
  };
}

params

访问云函数时的请求数据,根据请求方法不同可能代表不同的数据。

POST 请求时

{Object | string | Buffer}:POST 请求时,params 代表 Request Body 的内容,具体类型由 Content Type 决定:

Content Typeparams 数据类型
application/jsonObject
multipart/form-dataObject
text/plainstring
application/x-www-form-urlencodedObject
其他(例如 application/octet-streamBuffer

参考教程

获取 POST 请求参数

GET 请求时

{Object}:GET 请求时,params 是由 Query String 转换的键值对象。

提示

对象中的值为 stringArray<string> 类型,例如 ?a=1params.a === '1'

参考教程

获取 GET 请求参数

context

请求的上下文,同时也包含一些辅助方法。

context.headers

js
const contentType = context.headers['content-type'];
const myCustomHeader = context.headers['x-my-header'];
const contentType = context.headers['content-type'];
const myCustomHeader = context.headers['x-my-header'];

{Object}:获取 HTTP 请求的 Headers,为键值对形式。

提示

对象中的键均为小写字母,例如应该是 context.headers['content-type'] 而非 context.headers['Content-Type']

context.method

{string}:获取 HTTP 请求的 Method,值为大写字母,例如 'POST''GET'

context.request

{Request}:Node.js request 对象。

context.req

context.request 的缩写。

context.response

{Response}:Node.js response 对象。

context.res

context.response 的缩写。

context.path

js
// /hello?hi=aircode
const path = context.path;
// => /hello
// /hello?hi=aircode
const path = context.path;
// => /hello

{string} 获取 HTTP 请求的完整 path。

context.url

js
// /hello?hi=aircode
const url = context.url;
// => /hello?hi=aircode
// /hello?hi=aircode
const url = context.url;
// => /hello?hi=aircode

{string} 获取 HTTP 请求的完整 URL,包括 path 和 query 字符串。

context.protocol

{string} 获取 HTTP 请求的协议,在 AirCode 中为 https

context.query

js
// ?hello=world&abc=xyz&abc=123
const hello = context.query.hello;
// => 'world'
const abc = context.query.abc;
// => [ 'xyz', '123' ] 
// ?hello=world&abc=xyz&abc=123
const hello = context.query.hello;
// => 'world'
const abc = context.query.abc;
// => [ 'xyz', '123' ] 

{Object}:获取 HTTP 请求的 Query String 转换的键值对象,在 GET 请求时与 params 相同。

提示

对象中的值为 stringArray<string> 类型,例如 ?a=1context.query.a === '1'

context.cookies

{Object}: Get the cookies of the HTTP request in the form of key-value pairs.

提示

对象中的值为 string 类型, 如果客户端在 cookie 中存了 JSON 字符串,你需要自己调用 JSON.parse 解析。

context.trigger

{string}:获取云函数触发调用的来源,包含以下值:

取值调用来源参考教程
'HTTP'通过 HTTP/HTTPS 的形式调用调用云函数
'SCHEDULE'通过配置的定时任务调用定时任务
'DEBUG'通过在线调试调用在线调试云函数

context.set(field, value)

js
context.set('content-type', 'application/json');
context.set('x-abc-header', 'hello world');
context.set('content-type', 'application/json');
context.set('x-abc-header', 'hello world');

设置返回的 HTTP Response Headers 信息。

参数

  • {string} field:要设置的 Response Header 的键
  • {string} value:要设置的 Response Header 的值

context.remove(field)

js
context.remove('x-abc-header');
context.remove('x-abc-header');

删除对应 field 的 HTTP Response Header 信息,若不存在该 field 则不会执行任何操作。

参数

  • {string} field:要删除的 Response Header 的键

context.setCookie(name, value[, options])

js
context.setCookie('token', 'aircode', { expires: new Date(Date.now() + 24 * 60 * 60 * 1000), httpOnly: true });
context.setCookie('token', 'aircode', { expires: new Date(Date.now() + 24 * 60 * 60 * 1000), httpOnly: true });

将名为 name 的 cookie 值设为 value

参数

  • {string} name:要设置的 cookie 的名称。
  • {string} value:要设置的 cookie 值。
  • {object} options:cookie 选项。

具体的 options 选项参考 express response cookie

context.clearCookie(name[, options])

js
context.clearCookie('token', { path: '/admin' });
context.clearCookie('token', { path: '/admin' });

将名为 name 的 cookie 值清空。

参数

  • {string} name:要清除的 cookie 的名称。
  • {object} options:cookie 选项。

context.redirect(url[, code])

js
context.redirect('https://aircode.io');
context.redirect('https://aircode.io');

强制跳转到指定 URL,状态码为 code,默认值 302。

参数

  • {string} url:要跳转到的网址。
  • {number} code:跳转时的 HTTP Status Code,默认值为 302

context.status(code)

js
context.status(201);
context.status(201);

用于设置返回的 HTTP Status Code 信息。

提示

默认情况下函数执行成功返回的 Status Code 为 200,执行失败返回 500

参数