- 云函数使用geoNear报错,说geopoint的值必须是number?
今天遇到一个非常奇怪找不到原因的bug 在云函数中写了一个geoNear聚合函数,返回不到数据,空值,也没有报错,反复找bug找了三个小时,发现应该是genNear参数里面要的geopoint识别有bug,又反复检查了n遍都找不到问题在哪,云函数也找不到问题,因为我每个函数都用的同一个point数据,是个全局变量,在以前写的别的函数就都能用,就今晚新写的云函数不行,最后我没办法了,为了找到问题,我复制了一个前一阵写的一模一样的云函数,上传到云端,用同样的参数调用,结果是今天以前上传的云函数都可以用,只有今天上传的云函数使用同一个geoPoint就报错?这样就不是代码问题了,是版本或者服务器问题吧? 所以折腾了我整整一晚上还是找不到原因,谁能救救我? VM5689 WAService.js:2 Error: cloud.callFunction:fail Error: errCode: -504002 functions execute fail | errMsg: Error: Geo Point must be number type at Function.isGeopoint (:48047/var/user/node_modules/@cloudbase/database/dist/commonjs/validate.js:13) at new Point (:48047/var/user/node_modules/@cloudbase/database/dist/commonjs/geo/point.js:8) at Aggregation.geoNear (:48047/var/user/node_modules/@cloudbase/database/dist/commonjs/aggregate.js:86) at Aggregate.pushStage (:48047/var/user/node_modules/wx-server-sdk/index.js:1088) at Aggregate.geoNear (:48047/var/user/node_modules/wx-server-sdk/index.js:1109) at Runtime.exports.main [as handler] (:48047/var/user/index.js:29) at Runtime.handleOnce (:48047/var/runtime/node12/Runtime.engine.js:219) at Timeout._onTimeout (:48047/var/runtime/node12/Runtime.engine.js:56) at listOnTimeout (:48047/appservice/internal/timers.js:549) at processTimers (:48047/appservice/internal/timers.js:492) (callId: 1657354987492-0.30759337613434545) (trace: 16:23:7 start->16:23:8 system error (Error: errCode: -504002 functions execute fail | errMsg: Error: Geo Point must be number type at Function.isGeopoint (:48047/var/user/node_modules/@cloudbase/database/dist/commonjs/validate.js:13) at new Point (:48047/var/user/node_modules/@cloudbase/database/dist/commonjs/geo/point.js:8) at Aggregation.geoNear (:48047/var/user/node_modules/@cloudbase/database/dist/commonjs/aggregate.js:86) at Aggregate.pushStage (:48047/var/user/node_modules/wx-server-sdk/index.js:1088) at Aggregate.geoNear (:48047/var/user/node_modules/wx-server-sdk/index.js:1109) at Runtime.exports.main [as handler] (:48047/var/user/index.js:29) at Runtime.handleOnce (:48047/var/runtime/node12/Runtime.engine.js:219) at Timeout._onTimeout (:48047/var/runtime/node12/Runtime.engine.js:56) at listOnTimeout (:48047/appservice/internal/timers.js:549) at processTimers (:48047/appservice/internal/timers.js:492)), abort) at C (VM5689 WAService.js:2) at VM5689 WAService.js:2(env: macOS,mp,1.06.2206271; lib: 2.24.3) 以上是报错的代码,有没有人能看得懂咋回事啊。。。
2022-06-25 - 云开发聚合中geoNear中query的时间戳大小比较的写法?
由于geoNear这个尴尬的方法必须用在聚合第一个阶段,数据库很大又不想把limit放到太大,导致应该写在match里的条件语句要写到geoNear的query里,是一个时间比较条件,实在是不会写了,用where的写法也不对,用match的写法也不对,加了expression也不对,求大神救救我吧。。。 当前的状态如下图(其实没起到任何作用) [图片]
2021-12-15 - 通过用户分享进入的子页面(非tab页),在onload中无法调用onlaunch的回调函数?
a按照通用做法,如果需要在页面onload使用app.js中异步返回的数据,就在本页面onload定义一个app.callback,在app.js异步结果中判断是否定义了这个callback,如果有就执行。 我在几个tab页面使用这个方法是没问题的,但是在用户分享出去的子页面第一次launch小程序的时候,这个方法不执行,我能确定的是在app.js已经判断有这个callback的定义,也执行了这个callback,但是好像没有传给目标页面,执行的并不是目标页面的方法。。。 [图片]这是index.js的onload,执行到第36行 [图片]这是app.js的onlaunch,执行到122行 [图片] 这是console,按道理应该执行app.js的122以后,回到index.js去执行37行以后,但是并没有,在其他页面是没这个问题的,有没有大神指点我一下怎么回事?
2021-11-10 - 使用setdata 赋值时 globaldata 跟随变化?
页面data用globaldata 赋值之后,用setdata改变该变量导致globaldata相应改变是怎么回事呢? 真的百思不得其解 具体请看图片[图片]
2020-06-10