上次简单建立了一个云开发的模板,介绍了下数据是如何流转的。今天来看看本地函数如何变成云函数。html
首先来看下官网对于云函数的定义,详见 连接node
云函数即在云端(服务器端)运行的函数。在物理设计上,一个云函数可由多个文件组成,占用必定量的 CPU 内存等计算资源;各云函数彻底独立;可分别部署在不一样的地区。开发者无需购买、搭建服务器,只需编写函数代码并部署到云端便可在小程序端调用,同时云函数之间也可互相调用。数据库
一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js 中。当云函数被小程序端调用时,定义的代码会被放在 Node.js 运行环境中执行。咱们能够如在 Node.js 环境中使用 JavaScript 同样在云函数中进行网络请求等操做,并且咱们还能够经过云函数后端 SDK 搭配使用多种服务,好比使用云函数 SDK 中提供的数据库和存储 API 进行数据库和存储的操做,这部分可参考数据库和存储后端 API 文档。npm
云开发的云函数的独特优点在于与微信登陆鉴权的无缝整合。当小程序端调用云函数时,云函数的传入参数中会被注入小程序端用户的 openid,开发者无需校验 openid 的正确性由于微信已经完成了这部分鉴权,开发者能够直接使用该 openid。json
先从云开发控制台把我以前建立成功的云函数login、add删掉小程序
然后开始咱们的主题。后端
确保project.config.json
文件中指定本地已存在的目录做为云函数的本地根目录api
咱们在云函数根目录上右键,在右键菜单中,能够选择建立一个新的 Node.js 云函数,咱们将该云函数命名为 add。服务器
开发者工具在本地建立出云函数目录和入口 index.js 文件,同时在线上环境中建立出对应的云函数。微信
建立成功后,工具会提示是否当即本地安装依赖,肯定后工具会自动安装 wx-server-sdk
。咱们能够看到相似以下的一个云函数模板:
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } }
然后咱们填充业务逻辑,一个简单的加法
本段代码的意思是将传入的 a 和 b 相加并做为 sum 字段返回给调用端。
在小程序中调用这个云函数前,咱们还须要先将该云函数部署到云端。在云函数目录上右键,在右键菜单中,咱们能够将云函数总体打包上传并部署到线上环境中。
会提示以下:
如提示,未安装依赖。须要先安装nodejs,安装步骤(nodejs连接 npm连接)不在此展开,安装完成后,cmd到add文件夹下,运行命令npm install wx-server-sdk,便可安装依赖包。
安装完成后再将云函数总体打包上传并部署到线上环境就不会有错误提示了。
能够在云端进行简单的测试
运行测试后,可看测试结果
至此,一个本地函数就上传至云端了,成为了一个云函数。