- 小程序数据库批量add添加数据
- 需要在云函数中往某个集合添加多条数据,只能用for来add不但很慢而且会报错 - 能够批量add的办法
2019-05-25 - 云开发如何批量更新数据?
之前从数据库中取出20条数据,数据格式例如: ... {name: '张三', 'phone': '110', prize: '0'} ... 修改了其中10条数据的prize更新为不同的数字 {name: '张三', 'phone': '110', prize: '1'},{name: '李四', 'phone': '110', prize: '2'},{name: '王二麻子', 'phone': '110', prize: '3'},{name: '赵四', 'phone': '110', prize: '4'},{name: '钱三', 'phone': '110', prize: '5'},{name: '张三1', 'phone': '110', prize: '6'},{name: '李四1', 'phone': '110', prize: '7'},{name: '王二麻子1', 'phone': '110', prize: '8'},{name: '赵四1', 'phone': '110', prize: '9'},{name: '钱三1', 'phone': '110', prize: '10'}, 我现在是for循环写的, arr.forEach((ele) => { [代码] db.collection([代码][代码]'users'[代码][代码]).where({name: ele.name[代码] [代码]})[代码] [代码] [代码][代码].update({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]prize: ele.prize[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码] [代码]});[代码] 可以一次性更新多条数据的写法吗?
2019-11-19 - 为什么在云开发控制台的高级操作那里,这样子写会报错呢?
[图片] 下面是官方文档的实例代码 [图片]
2019-11-28 - 我来提个需求:别人给我转发了一个小程序,带着特定的path和query参数
别人给我转发了一个小程序,带着特定的path和query参数。ta给我转发这个小程序,肯定是希望我在小程序里做一些特定的事情,所以带了一些特定的path和query参数。但是,但是,这个小程序我刚才已经用了,它还在后台运行。那这个时候我点开ta给我的转发,却得不到那些path和query参数,也就做不了ta要我做的事情。——————这是一个非常严重的错误。希望腾讯的人员能充分重视这个问题。
2019-05-10 - getWXContext为空值
- 当前 Bug 的表现(可附上截图) 服务端,A函数调用B函数,A函数能通过getWXContext获取openid,B函数无法通过调用getWXContext获取openid(A函数的请求来源于客户端) - 预期表现 B函数可以通过调用getWXContext获取openid - 复现路径 - 提供一个最简复现 Demo
2018-11-14 - 云开发云函数报错-501001
小程序突然接不到数据,打开后台看了云函数报错,报Error: errCode: -501001 resource system error | errMsg: tmp secret key expire; 在社区搜了一下,发现有很多人遇到,好像是官方sdk的问题,项目面临验收,希望能快点解决。 [图片]
2019-06-19 - 上传云函数失败
- 当前 Bug 的表现(可附上截图) [图片] - 预期表现 应该上传成功 - 复现路径 从6月13日下午开始到现在,一直上传失败,没有成功过。 尝试过重新打开客户端之类的操作,再上传也无法成功。 尝试过后台删除云函数,无法成功删除。 只有这一个云函数上传会失败,其他云函数能正常上传。 6月14日下午,另一个云函数“admin”也出现了这样的问题。 (ps:感觉上传失败的几率越来越高了,而且一旦上传失败,就很可能连续上传失败,连续上传失败后,就再也没办法上传这个云函数了)
2019-06-14 - 谈一谈隐藏路由回调API wx.onAppRoute
打印wx对象的时候发现了原来小程序有一个全局路由回调api。试了一下觉得不错,真机上也可以用。 原来觉得可以用来做一个全局路由中间件(像vue router一样),如: [代码]// app.js[代码] [代码]import store from 'store'[代码] [代码] [代码] [代码]onLaunch () {[代码] [代码] wx.onAppRoute((route) => {[代码] [代码] [代码][代码]const protectedRoutes = [[代码][代码] [代码][代码]'pages/protected/1'[代码][代码],[代码][代码] [代码][代码]'pages/protected/2'[代码][代码],[代码][代码] [代码][代码]'pages/protected/3'[代码][代码] [代码][代码]][代码][代码] [代码][代码]if[代码] [代码](!store.userLoggedIn() && protectedRoutes.find(r => route.path.includes(r))) {[代码][代码] [代码][代码]wx.redirectTo({[代码][代码] [代码][代码]url: [代码][代码]'/pages/register/register'[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] })[代码] [代码]}[代码] 但是,经测试发现这个回调触发太慢了,不适合用于授权页面。页面切换后大概有半秒可以看新页面的内容。 还是得在各处添加登录状态代码。 官方可不可以提供一个wx.beforeAppRoute回调,navigate / switchtap / redirect时立即触发,用来更好地做全局路由中间件?
2019-05-25 - 请问小程序有最佳的state管理库吗?
能整合redux到小程序的环境吗? 全局state有最佳实践可以供参考吗? 谢谢。
2018-09-03 - 利用云函数绕过域名校验和HTTPS配置,实现内网加端口访问
闲来无事,无意中发现云函数中的request网络请求可以不用配置校验域名和https,也就是说可以通过云函数封装一个请求通用函数来处理没有域名和https的网络请求(甚至包括内网穿透,可以用非80端口进行实验)。 适用场景: A、没有域名或使用局域网(直接使用IP访问); B、使用花生壳动态域名解析(内网穿透); C、有域名但不想申请配置HTTPS(懒人); D、连自己的服务器都没有,接口直接使用开源或者第三方接口且不能添加域名校验的情况(空壳); E、不愿意直接在小程序中直接暴露自己逻辑API实际请求地址的(安全); ······ 具体步骤如下: 1、给项目添加云函数支持(https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html) 2、新建名为“proxy”的云函数,配置支持request-promise [代码]// package.json[代码][代码]{[代码][代码] [代码][代码]"name"[代码][代码]: [代码][代码]"proxy"[代码][代码],[代码][代码] [代码][代码]"version"[代码][代码]: [代码][代码]"1.0.0"[代码][代码],[代码][代码] [代码][代码]"description"[代码][代码]: [代码][代码]""[代码][代码],[代码][代码] [代码][代码]"main"[代码][代码]: [代码][代码]"index.js"[代码][代码],[代码][代码] [代码][代码]"scripts"[代码][代码]: {[代码][代码] [代码][代码]"test"[代码][代码]: [代码][代码]"echo \"Error: no test specified\" && exit 1"[代码][代码] [代码][代码]},[代码][代码] [代码][代码]"author"[代码][代码]: [代码][代码]""[代码][代码],[代码][代码] [代码][代码]"license"[代码][代码]: [代码][代码]"ISC"[代码][代码],[代码][代码] [代码][代码]"dependencies"[代码][代码]: {[代码][代码] [代码][代码]"wx-server-sdk"[代码][代码]: [代码][代码]"latest"[代码][代码],[代码][代码] [代码][代码]"request"[代码][代码]: [代码][代码]"latest"[代码][代码],[代码][代码] [代码][代码]"request-promise"[代码][代码]: [代码][代码]"latest"[代码][代码] [代码][代码]}[代码][代码]}[代码][代码]// 云函数入口文件index.js[代码] [代码]const cloud = require([代码][代码]'wx-server-sdk'[代码][代码])[代码][代码]const rq = require([代码][代码]'request-promise'[代码][代码])[代码][代码]cloud.init()[代码][代码]// 云函数入口函数[代码][代码]// event为小程序调用的时候传递参数,包含请求参数uri、headers、body[代码][代码]exports.main = async (event, context) => {[代码][代码] [代码][代码]return[代码] [代码]await rq({[代码][代码] [代码][代码]method: [代码][代码]'POST'[代码][代码],[代码][代码] [代码][代码]uri: event.uri,[代码][代码] [代码][代码]headers: event.headers ? event.headers : {},[代码][代码] [代码][代码]body: event.body[代码][代码] [代码][代码]}).then(body => {[代码][代码] [代码][代码]return[代码] [代码]body[代码][代码] [代码][代码]}).[代码][代码]catch[代码][代码](err => {[代码][代码] [代码][代码]return[代码] [代码]err[代码][代码] [代码][代码]})[代码][代码]}[代码]3、在小程序中调用云函数请求数据请求 [代码]onLoad: [代码][代码]function[代码][代码](){[代码][代码] [代码][代码]// 初始化[代码][代码] [代码][代码]wx.cloud.init()[代码][代码]},[代码][代码]onGetItemList: [代码][代码]function[代码][代码](){[代码][代码] [代码][代码]wx.cloud.callFunction({[代码][代码] [代码][代码]name: [代码][代码]'proxy'[代码][代码],[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]// http域名 https域名 第三方域名 非验证域名 IP[:prot] 内网IP或花生壳域名[代码][代码] [代码][代码]uri: [代码][代码]'http://192.168.1.100:8081'[代码][代码],[代码][代码] [代码][代码]headers: {[代码][代码] [代码][代码]'Content-Type'[代码][代码]: [代码][代码]'application/json'[代码][代码] [代码][代码]},[代码][代码] [代码][代码]body: {[代码][代码] [代码][代码]uid: 1[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}).then(res => {[代码][代码] [代码][代码]console.log(res)[代码][代码] [代码][代码]const data = res.result[代码][代码] [代码][代码]console.log(data)[代码][代码] [代码][代码]// do something[代码][代码] [代码][代码]})[代码][代码]}[代码]然后你会发现你已经无所不能了。 个人见解,如有不妥之处,望各位大神指正!~
2018-12-03