博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
await js 报错_js await 返回值
阅读量:6691 次
发布时间:2019-06-25

本文共 3285 字,大约阅读时间需要 10 分钟。

云函数(FaaS)是一段运行在云端的、轻量的、无关联的、并且可重用的代码。无需管理服务器,只需编写和上传代码,即可获得对应的数据结果。使用云函数可以使企业和开发者不需要担心服务器或底层运维设施,可以更专注代码和业务本身,也可以使代码进一步解耦,增加其重用性。

在客户端只需依赖mpserverless-sdk,在应用的上下文中进行简单的鉴权配置,即可调用云函数。

云函数的入参只有一个ctx对象,该对象可获取调用的云函数时传入的参数,也可获取小程序serverless服务空间的云数据库,云存储等服务。

例如,我们定义一个云函数,名为hello。代码如下所示:

//云函数定义在index.js中,此文件为云函数的入口文件 module.exports = ctx => { const args = ctx.args; return { "text": args.hello, }; };云函数支持使用Node.js进行开发。您可将代码提交到云端运行,在客户端使用小程序Serverless提供的API进行调用。您还可以在云函数中直接通过API调用数据存储和文件存储的服务资源。 说明 目前云函数内不能调用其他云函数,只支持客户端的使用场景,例如支付宝小程序。 步骤一 定义云函数

关联上对应的后端云服务后,您可以在服务端目录中编写云函数的代码。

登录小程序云控制台,创建云函数。

详细操作,请参见新建云函数。

注意 云函数的名称必须和要上传的Node.js代码包名称一致。

新建云函数

在小程序的server/functions目录下创建云函数目录。

其中index.js是云函数getImageList的入口文件。

└── server/

└── functions

└── getImageList

└── index.js

编写云函数代码。

以下代码示例展示了如何从数据库images里面查出特定用户上传的图片记录。

module.exports = async (ctx) => {

const images = await ctx.mpserverless.db.collection('images').find({ owner: ctx.args.username });

return { images };

};

说明 云函数的返回值类型仅支持JSON格式。

打包云函数文件。

确保云函数文件名称和控制台上创建的云函数名称一致且为ZIP格式。

步骤二 部署云函数

编写云函数代码后,您需要将云函数代码上传至控制台发布代码。

在左侧导航栏,选择小程序Serverless > 云函数。

单击已创建的函数名称链接。

在发布管理页签,单击上传js包或更新js包,然后选择要上传的代码包。

说明 上传的代码包必须满足以下要求:

代码包的名称必须和在控制台上创建的函数名称一致。

代码包必须是.zip文件。

上传的代码包必须包含index.js文件。

上传成功后,单击代码部署。

步骤三 调用云函数

云函数代码发布后,在客户端您可以使用mpserverless.function.invoke方法调用上述定义的云函数。

以下代码示例展示了如何获取用户上传的图片记录,然后更新页面数据。

// 引入MPServerless模块 const MPServerless = require('@alicloud/mpserverless-sdk'); // 初始化MPServerless对象 const mpServerless = new MPServerless({ uploadFile: my.uploadFile, request: my.request, getAuthCode: my.getAuthCode, }, { appId: '1234456789', // 小程序应用标识 spaceId: 'db4dd657-7041-470a-90xxxxx', // 服务空间标识 clientSecret: '6c3c86xxxx6', // 服务空间 secret key endpoint: 'https://api.bspapp.com', // 服务空间地址,从小程序 serverless 控制台处获得 }); // 调用云函数getImageList mpServerless.function.invoke('getImageList', { username: 'Vincent', }).then((res) => { if (res.success && res.result) { this.setData({ imageList: res.result.images }); } }).catch(console.error);

云函数是一个后端服务,有时需要获得从客户端传来的参数。通过云函数内置的ctx.args方法,您可以获得从客户端传来的参数。 客户端代码

以下是客户端代码示例:

await mpserverless.function.invoke('hello', { hello: 'world' });

云函数代码

以下是云函数代码示例:

module.exports = async ctx => { ctx.logger.info('hello %s', ctx.args.hello); };

在云函数中,您可以直接调用同一环境(空间)的数据存储和文件存储服务。ctx.mpserverless在云函数封装了小程序的基础服务, API使用方式和客户端一致。

例如,要从数据存储获取数据,可以直接调用ctx.mpserverless.db方法:

module.exports = async ctx => { const args = ctx.args; return await ctx.mpserverless.db.collection('user').find({ uid: args.uid }); };

云函数(FaaS)是一段运行在云端的、轻量的、无关联的、并且可重用的代码。无需管理服务器,只需编写和上传代码,即可获得对应的数据结果。使用云函数可以使企业和开发者不需要担心服务器或底层运维设施,可以更专注代码和业务本身,也可以使代码进一步解耦,增加其重用性。

在客户端只需依赖mpserverless-sdk,在应用的上下文中进行简单的鉴权配置,即可调用云函数。

云函数的入参只有一个ctx对象,该对象可获取调用的云函数时传入的参数,也可获取小程序serverless服务空间的云数据库,云存储等服务。

云函数提供了 ctx.httpclient HTTP 请求方法。无需额外依赖,您就可以请求任何 HTTP 和 HTTPS 协议的 Web 服务。

例如,请求一个网页:

module.exports = async ctx => { const res = await ctx.httpclient.request('https://www.alipay.com/x/notFound.htm'); return { html: res.status === 200 ? res.data : '', }; };

其中,ctx.httpclient返回的是一个urllib实例。

云函数(FaaS)是一段运行在云端的、轻量的、无关联的、并且可重用的代码。无需管理服务器,只需编写和上传代码,即可获得对应的数据结果。使用云函数可以使企业和开发者不需要担心服务器或底层运维设施,可以更专注代码和业务本身,也可以使代码进一步解耦,增加其重用性。

在客户端只需依赖mpserverless-sdk,在应用的上下文中进行简单的鉴权配置,即可调用云函数。

云函数的入参只有一个ctx对象,该对象可获取调用的云函数时传入的参数,也可获取小程序serverless服务空间的云数据库,云存储等服务。

转载地址:http://vpdoo.baihongyu.com/

你可能感兴趣的文章
获取某一天每个小时的数据
查看>>
LeetCode 222. Count Complete Tree Nodes
查看>>
对Fiddler设置【Decrypt HTTPS traffic】后火狐浏览器打开https【您的连接并不安全】的解决方法...
查看>>
0059-乘积问题
查看>>
2019年的第一篇随笔
查看>>
关于公网ip的一些信息(摘抄)
查看>>
5分钟弄懂Docker!
查看>>
BZOJ1076:[SCOI2008]奖励关(状压DP,期望)
查看>>
BZOJ2223/3524:[POI2014] Couriers(主席树)
查看>>
MyEclipse — Maven+Spring+Struts+Hibernate 整合 [学习笔记-5]
查看>>
Nodejs 连接各种数据库集合例子
查看>>
easyui的datagrid用js插入数据等编辑功能的实现
查看>>
Windows App开发之集合控件与数据绑定
查看>>
AMD、CMD/AMD与CMD的区别
查看>>
Python~第一天
查看>>
Linux管理用户账号
查看>>
redis中使用lua脚本
查看>>
颜色数组
查看>>
ELASTICSEARCH清理过期数据
查看>>
oo第三次博客作业
查看>>