微信小程序开发之云函数本地调试

环境

  • 微信开发者工具 Stable 1.06.2303220
  • 云开发控制台 v1.5.47

简介

微信云开发提供了云函数本地调试功能,在本地提供了一套与线上一致的 Node.js 云函数运行环境,让开发者可以在本地对云函数调试:

  • 在本地调试时,可以设置断点,单步调试。
  • 本地调试还定制化提供了特殊的调试能力,包括 Network 面板支持展示 HTTP 请求和云开发请求、调用关系图展示、本地代码修改时热重载等等能力。

显然,使用本地调试可以大大提高开发、调试效率,因此,建议开发者在开发阶段和上传代码前,先使用本地调试,测试通过后再上线部署。

测试

准备

在微信开发者工具中,创建一个新项目 miniprogram-13 ,输入AppID,并选择“微信云开发”。

在“Pages”上新建文件夹“myPage1”,然后添加编译模式,选择“启动页面”为该页面。

测试1(不存在的云函数)

打开 myPage1.wxml 文件,编辑如下:

<button type="primary" bindtap="btn1Click">Test1</button>

打开 myPage1.js 文件,添加如下内容:

  btn1Click() {wx.cloud.callFunction({name: 'nonexistent'}).then(res => {console.log(res)})},

这里我们调用了一个不存在的云函数 nonexistent

点击按钮,报错如下:

WAServiceMainContext.js:2 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID cb74606c-b2c6-46ad-b41e-31e3c672be75, cloud function service error code -501000, error message FunctionName parameter could not be found.; at cloud.callFunction api;

测试2(只存在本地的云函数)

打开 myPage1.wxml 文件,添加如下内容:

<button type="primary" bindtap="btn2Click">Test2</button>

打开 myPage1.js 文件,添加如下内容:

  btn2Click() {wx.cloud.callFunction({name: 'myCloudFunc1'}).then(res => {console.log(res)})},

右键单击“cloudfunctions”,新建Node.js云函数。打开其 index.js 文件,编辑如下:

// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境// 云函数入口函数
exports.main = async (event, context) => {return 'Hello world!'
}

不要上传该云函数,也不要打开云函数本地调试。

点击按钮,Console输出如下:

{errMsg: “cloud.callFunction:ok”, result: {…}, requestID: “67e40cca-ad51-496c-816a-c6e9d4e1c872”}
errMsg: “cloud.callFunction:ok”
requestID: “67e40cca-ad51-496c-816a-c6e9d4e1c872”
result:
appid: “wxb6b7b29f5024c210”
event:
userInfo:
appId: “wxb6b7b29f5024c210”
openId: “om0Xk4nwFN3tHl3X9vEX7H-q_eFg”
proto: Object
proto: Object
openid: “om0Xk4nwFN3tHl3X9vEX7H-q_eFg”
unionid: “”
proto: Object
proto: Object

测试3(云函数本地调试)

右键单击“myCloudFunc1”,选择“开启云函数本地调试”:

在这里插入图片描述

弹出“云函数本地调试窗口”,并提示安装node modules:

在这里插入图片描述

点击“确定”按钮。

在微信开发者工具窗口,可以看到安装进度:

在这里插入图片描述
安装完成后,云函数本地调试窗口如下:

在这里插入图片描述
注意要勾上“开启本地调试”选项。

点击按钮,Console输出如下:

在这里插入图片描述
可见:

  • 当调用云函数时,Console输出:“小程序对本地云函数 ‘myCloudFunc1’ 发起了调用”。
  • 当调用云函数完成时,Console输出:“调用本地云函数 ‘myCloudFunc1’ 成功”。
  • 从API结果可见,确实调用了云函数,返回了“Hello world!”。

测试4(访问云数据库)

修改 myCloudFun1index.js 文件如下:

// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境const db = cloud.database()// 云函数入口函数
exports.main = async (event, context) => {return await db.collection('table0508').get()
}

调试步骤同测试3。

点击按钮,Console输出如下:

在这里插入图片描述
可见,云函数本地调试也能访问云数据库。本例中,从云数据库里获取了7条记录。

测试5(单步调试和输出)

修改 myCloudFun1index.js 文件,添加一些代码:

  ......let i = 1, j = 2let k = i + jconsole.log('k = ' + k)......

调试步骤同测试3。

在行号处单击,可以添加断点:

在这里插入图片描述

单击按钮,断点生效:

在这里插入图片描述

有Watch、Call Stack、Local等,也有单步调试、继续运行等,和其它IDE开发环境都差不多,一看即知。

此外,在云函数本地调试的Console页签,可以看到云函数里的输出:

在这里插入图片描述

参考

  • https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/local-debug.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352856.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

全面的软件测试

1 全过程的软件测试图解 传统的软件测试&#xff0c;开发人员完成任务之后&#xff0c;最后交付给测试人员&#xff0c;这种模式下&#xff0c;测试人员不能及早发现需求阶段的缺陷&#xff0c;同时测试工作的开展也滞后了&#xff0c;产品质量得不到有效的过程控制和分析&…

List of USB ID's

为什么80%的码农都做不了架构师&#xff1f;>>> # # List of USB IDs # # Maintained by Stephen J. Gowdy <linux.usb.idsgmail.com> # If you have any new entries, please submit them via # http://www.linux-usb.org/usb-ids.html # or send entries a…

FastAPi上传文件报错,There was an error parsing the body

问题描述 通过postman调用fastapi编写的文件接口报错&#xff0c;如下图&#xff1a; {"detail": "There was an error parsing the body" } 问题的解决过程 postman本身的问题 postman有个work directory的概念&#xff0c;所以再使用postman上传的文…

Arm NN 成功适配 openEuler Embedded,提供高性能神经网络推理能力

近期&#xff0c;RISC-V SIG 完成了 Arm NN 在 openEuler Embedded 系统的适配&#xff0c;于 2023 年 1 月合入系统构建工程代码库&#xff0c;经测试验证可用&#xff0c;实现了神经网络加速库在 openEuler Embedded 嵌入式系统上的加速和优化。 系统构建工程下载地址&#x…

【数据结构】--单链表力扣面试题⑥链表的回文结构

题述&#xff1a;对于一个链表&#xff0c;请设计一个时间复杂度为o(n),额外空间复杂度为o(1)的算法&#xff0c;判断其是否为回文结构。给定一个链表的头指针A&#xff0c;请返回一个bool值&#xff0c;代表其是否为回文结构。保证链表长度<900 测试样例&#xff1a; 输入…

中医养生APP小程序开发 了解传统文化传承医学经典

中国文化博大精深&#xff0c;中国传统文化更是历史久远&#xff0c;一直到几千年后的今天很多传统文化依然对我们现在的生活有着重大的影响&#xff0c;比如中医。随着人们对健康关注度的提高&#xff0c;很多人把目光投向了追本溯源的中医上&#xff0c;企图通过中医养生达到…

还原SQL Server 2008备份到另一台设备上

打开”SQL Server Management Studio“菜单&#xff0c;右击数据库&#xff0c;选择“还原数据库”&#xff1a; 设置目标目标数据库的名称和选择数据库备份文件的位置&#xff1a; 在"选项"页中&#xff0c;更改数据文件的还原路径为新的位置 &#xff0c;这里…

墨天轮专访TDengine陶建辉:坚持做难而正确的事,三次创业成就不悔人生

导读&#xff1a; 时序数据库&#xff08;Time Series Database&#xff09;在最近几年被越来越多的用户接受并使用&#xff0c;并有广泛的应用场景。云原生时序数据库 TDengine 一直稳居墨天轮时序数据库榜首&#xff0c;其近期的海外发展也初见成效。本期&#xff0c;墨天轮技…

清除 挖矿脚本 攻击

清除 挖矿脚本 攻击 1.查看系统进程,是否有异常: top 发现CPU占用率200%&#xff0c;判定服务器已经被植入木马 2.查看异常进程是哪一个程序造成的 ls -al /proc/14618 发现恶意程序&#xff08;绿色的是可执行文件&#xff09;/etc/lafy 3.删除恶意程序 cd /etc rm -rf …

记一次挖矿病毒应急处置全过程挖矿处置基本操作

记一次挖矿病毒应急处置全过程&挖矿处置基本操作 一、处置过程1.查看第一位的pid号&#xff1a;325352.进入/tmp/.X11-unix目录&#xff0c;其中11文件中写的是32535,01文件中写的是守护进程pid号10092&#xff08;目录里的文件不一定相同&#xff09;。将整个目录删除3.cr…

操作系统复习2.3.2-临界区的软件硬件实现方法

软件实现方法 思想 在进入区设置并检查一些标志来得知是否有进程已经在临界区&#xff0c;有则循环检查等待&#xff0c;无则直接进入&#xff0c;进程进入/离开临界区时修改标志 单标志法 通过标记进程号来实现控制只有一个进程能够进行临界区&#xff0c;但会出现P0进程进…

挖矿木马分析之肉鸡竟是我自己

之前服务器总是有一些异地登陆的告警信息&#xff0c;用代理就会这样&#xff0c;自己也没太在意。今天偶然间打开一看&#xff0c;发现如下提示&#xff01; 接下来处理一下&#xff01; 收集信息 finalshell登陆发现CPU占用率为100%ps auxw|head -1;ps auxw|sort -rn -k3|h…

电脑是否中挖矿病毒

『壹』 怎么检查自己电脑有没有被人用来挖矿&#xff0c;比特币 挖矿都是烧的显卡&#xff0c;以下方法可以鉴定自己显卡是不是矿卡 1&#xff1a;通过肉眼来识别这个硬件究竟是不是矿卡 &#xff0c;其实通过其他方式也可以测出&#xff0c;就比如说你到电脑里面去测矿卡的超…

诺顿360偷偷挖矿被怒喷 官方却说:都是为了用户好

杀毒软件诺顿360居然偷偷往电脑里装挖矿软件&#xff1f; 2022年刚开始&#xff0c;一位47万粉的“大V”在Twitter上就爆出了安全领域的猛料&#xff0c;还用f开头的单词亲切问候了软件厂商。 要知道&#xff0c;诺顿360可是在无数官推民选的排行榜中常年名列前茅&#xff0c;…

ETH挖矿显卡算力大全

大家买显卡挖ETH&#xff0c;肯定最关心算力了&#xff0c;这里我整理一版&#xff0c;供大家参考&#xff0c;目前只有主流的整理上了&#xff0c;后期会完善更多的供大家参考&#xff01; 欢迎大家加入大力矿工群&#xff1a;621159725 软件下载&#xff1a;百度云盘链接…

【网络安全】企业应急响应基础技能

windows 任务计划列表 1. 计算机管理窗口,选择 系统工具 中 任务计划程序 中的 任务计划程序库选项 可以查看任务计划的名称,状态,触发器等详细信息 2.powershell中输入get-scheduledtask 可以查看当前系统所有任务计划信息 任务路径,名称,状态等详细信息 3.命令行中输入s…

git commit之前,没有pull最新代码,导致无法push代码如何解决?——git三板斧

一、报错&#xff1a; 如果在 git commit 之前没有 pull 最新代码&#xff0c;再进行 push 操作可能会出现冲突&#xff0c;导致无法 push 代码。此时&#xff0c;git 会提示类似以下的错误信息&#xff1a; error: failed to push some refs to gitgithub.com:username/repo…

Github黑暗模式正式发布,Reddit直接飙至4k高赞

在 GitHub Universe 2020上,其中发布的新特性中最大的改变就是正式推出了黑暗模式,同时还宣布了针对公司的 GitHub 赞助功能,允许公司对关心的开源项目进行投资等。 你是否有过打开电脑被晃「瞎」的感觉? 最近,在GitHub Universe上,一款「暗黑」模式被推了出来。 官…

Win10系统开启黑暗主题

Win10系统开启黑暗主题教程 首先保证windows10系统版本号在2004-20H2及以上。小编此次更新的windows10版本号为20H2。 最新官方纯净版下载地址在msdn新官网中&#xff0c;官方地址&#xff1a;MSDN&#xff0c;我告诉你&#xff01; 登录后&#xff0c;选择windows10系统。 获…

Unity RPG 黑暗之光 问题记录 上 (1-63 地形场景 角色选择 行走 相机跟随、旋转、缩放 任务系统 面板栏 背包系统 状态系统)

001 游戏预览和介绍 职业选择 鼠标点击移动 旋转 缩放 药品 装备 任务NPC 状态 装备 技能 存档 代码跟原视频的有所改动&#xff0c;主要是主角行为逻辑 002 导入场景资源&#xff0c;搭建场景 3方资源&#xff1a;RPG NGUI StandarAssets 进去关闭自动生成 &#xff08;…