二:云函数细则说明及部署流程

2023-11-19

细则说明

代码结构

通常一个云函数中,往往有着这样的代码结构:

// 环境初始化
const cloud = require('wx-server-sdk')
cloud.init()
// 获取数据库操作实例
const db = cloud.database()
// 导出回调
exports.main = async (event, context) => {
	let { OPENID, APPID } = cloud.getWXContext() 
	return something...
}

流程大致为环境初始化及生成数据库管理工具导出回调

初始化及生成数据库管理工具

使用node进行服务端开发时,除了内置模块,还可以使用npm安装其他模块。

wx-server-sdk就可以理解为这样的一个三方模块。

此模块暴漏了环境初始化生成数据库管理工具的方法,并且能够无视手动配置的集合权限(下图所示)。让开发者得以结合业务,通过代码判断数据的索引条件。

集合权限设置

例如:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()

开发者使用db对象提供的一系列属性和方法,就可以轻松操作数据库中的数据。

导出回调

exports.main = async (event, context) => {
	let { OPENID, APPID } = cloud.getWXContext() 
	return something...
}

可以很直观的看出,exports.main 向外部导出了一个匿名函数,并且附带两个参数eventcontext

event参数可以理解为req,包含着前端请求携带进来的数据。至于context则可以忽略,目前没有发现有什么实际作用。

通常在实际业务中,开发者还可以按需使用cloud.getWXContext()方法,在服务端直接获取到用户的OPENID和当前小程序的APPID 等信息,无需通过复杂的登录流程去维护用户的登录状态。

完整示例

分页获取当前用户的文章列表案例:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
	// 获取前端传递来的分页参数
	const { pageIndex, pageSize} = event || {}
	// 获取用户OPENID
	let { OPENID, APPID } = cloud.getWXContext()
    // 查询authorId为当前用户OPENID的文章总数
    const { total } = await db.collection('article').where({
            authorId: OPENID
    }).count()
	// 查询authorId为当前用户OPENID的文章列表
	const { data } = await db.collection('article').where({
        authorId: OPENID
    })
    // 分页条件
    .skip(pageIndex)
    .limit(pageSize)
    // 执行查询
    .get()
    // 返回结果给前端
	return {code: 200, total , data}
}

部署流程

本地云函数

cloudfunctions目录中的云函数,只是存放在本地,并不会出现在云开发控制面板中。

云开发控制面板

若没有开启云函数本地调试就直接调用,则该云函数会报错提醒。

建议开发者完成云函数的编写后,及时开启本地调试或将云函数部署到云端。

云端云函数

类似于部署接口到线上的操作。

在传统开发中,后端开发者在本地编写完接口后,会交由运维或自行将编译后的代码部署到服务器上。

使用node作为服务端的项目,也会在服务器安装pm2环境后部署。

而云函数的"上线工作",相比就轻松很多,只需要右键->上传并部署即可。

上传云函数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二:云函数细则说明及部署流程 的相关文章

随机推荐

  • 杨桃的Python进阶讲座18——数组array(八)如何从一维数组扩展为二维数组以及再次降为一维数组

    本人CSDN博客专栏 https blog csdn net yty 7 Github地址 https github com yot777 用reshape 函数将一维数组升维成二维数组 首先我们由一个列表转换为NpArray数组 gt g
  • git 提交代码时,提示输入用户名和密码,不知道用户名和密码是啥

    最近在跟小伙伴一起做小项目玩 之前clone代码时都是ssh 这次用的是https 提交代码遇到问题 在网上没有查到解决问题的办法 所以在这里记录以下这个问题的解决办法 后续有时间要 熟练掌握 git的使用方法 当小伙伴再遇到问题时 就可以
  • vue中如何引入jquery详解

    用vue cli脚手架工具构建项目成功后 当需要引入JQ 可用以下方法 1 首先在package json里的dependencies加入 jquery 3 2 1 2 在终端里输入npm install jquery save dev 当
  • unity 读取和写入Excel中文出现乱码解决方法

    在编辑器中读取和写入中文一切正常 发布出来只要是中文就会出现乱码 解决方法 将C Program Files Unity Editor Data Mono lib mono unity 目录下的I18N dll和I18N CJK dll复制
  • [转载]搜索引擎技术介绍

    转载声明 http backend blog 163 com blog static 202294126201252872124208 引言 早些时候分享过一份关于搜索引擎技术的PPT 这篇文章基本上是基于原来框架 在内容上做了一些改进和扩
  • 清华镜像pip安装命令

    在ubuntu系统下 pip3 install 安装包的名字 i https pypi tuna tsinghua edu cn simple 永久设置 pip install pip U pip config set global ind
  • 哈工大 csapp lab5

    实验报告 实 验 五 题 目 LinkLab 链接 专 业 计算机科学与技术 学 号 190110812 班 级 7 学 生 刘新晨 指 导 教 师 吴锐 实 验 地 点 G707 实 验 日 期 2021 5 16 计算机科学与技术学院
  • Linux 常用命令介绍

    文章目录 1 初级 1 pwd命令 2 cd命令 3 ls命令 实例练习 2 中级 1 Linux文件操作 1 创建文件 2 删除文件 2 Linux文件夹操作 1 创建文件夹 2 删除文件夹 3 Linux文件和文件夹拷贝 4 Linux
  • 使用 cloc 统计你的代码量

    转自 使用 cloc 统计你的代码量 今天发现一个特别好用的工具 cloc 可以用它统计代码的行数 它可以识别多种开发语言 并在计算的时候忽略掉注释和空行 我记得我上次申请软件著作权的时候 申请表格中要求提交代码量 当时为了计算行数 我写了
  • 51单片机——LED点阵屏

    51单片机 LED点阵屏 LED点阵屏 LED点阵屏原理 74HC595串转并芯片 源代码 例程一 静态笑脸 效果展示 例程二 笑脸 gt 平脸 gt 哭脸 效果展示 LED点阵屏 c51的LED点阵屏其实就是一个8 8像素的屏幕 一共有6
  • Qt程序的编译和发布(实验报告)

    实验 1 编译和发布 Qt 程序 目的与要求 掌握创建 Qt 程序的方法 掌握发布 Qt 程序的方法 学会为 Qt 程序添加应用程序图标 了解 Qt 发布需要的 DLL 动态库文 实验准备 搭建好 Qt 开发环境 了解 Qt Creator
  • 如何查看当前使用的Shell类型

    1 在终端输入命令 echo SHELL echo SHELL 2 在终端输入命令 echo 0 数字0 这个命令不是所有Shell都支持 echo 0 3 在终端输入命令ps 查看当前运行的shell是什么 如图1所示 有一个进程是bas
  • 【react】新旧生命周期对比

    componentWillUpdate componentWillReceiveProps componentWillMount 上述这三个生命周期在V18以上的版本中 使用时要加上UNSELF name
  • php正则表达式 验证密码,用于强密码验证的PHP正则表达式

    参见英文答案 gt Reference Password Validation 1个 我在网上看到了以下正则表达式 8 d W n A Z a z 它只在字符串中有效 contain at least 1 upper case letter
  • EF循环依赖

    1 项目场景 项目场景 1 本项目采用了EF架构来建立实体与实体之间的关联关系 2 一个部门对应多个摄像头 1 部门实体 public partial class DepartmentEntity 部门实体 public int Id ge
  • Netty中的零拷贝机制

    零拷贝机制 Zero Copy 是在操作数据时不需要将数据从一块内存区域复制到另一块内存区域的技术 这样就避免了内存的拷贝 使得可以提高CPU的 零拷贝机制是一种操作数据的优化方案 通过避免数据在内存中拷贝达到的提高CPU性能的方案 1 操
  • C++ 中的虚函数及虚函数表

    C 中的虚函数及虚函数表 一 虚函数及虚函数表的定义 二 虚函数表指针和虚函数表的创建时机 三 虚函数实现多态的原理 一 虚函数及虚函数表的定义 虚函数 虚函数就是在基类中定义一个未实现的函数名 使用虚函数的核心目的就是通过基类访问派生类定
  • MyBatis写入Json字段及Json字段转对象

    阅读本文章大概需要一分钟 一 背景 最近在设计表结构的时候 根据需求 将一个字段的类型设计为Json字段 而对于还没有操作过数据库Json字段的我就有点懵了 之前从未遇到这种情况 所以也是一步步研究一步步踩坑 最后终于是把Json字段读取的
  • 【css】overflow溢出隐藏

    overflow scroll 溢出部分显示滚动条 不溢出也显示滚动条 overflow auto 溢出的时候才显示滚动条 不溢出不显示滚动条
  • 二:云函数细则说明及部署流程

    目录 细则说明 代码结构 初始化及生成数据库管理工具 导出回调 完整示例 部署流程 本地云函数 云端云函数 细则说明 代码结构 通常一个云函数中 往往有着这样的代码结构 环境初始化 const cloud require wx server