- 云函数报错 $.pipeline is not a function ?
const cloud = require'wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() const _ = db.command const $ = db.command.aggregate // 云函数入口函数 exports.main = async (event, context) => { 省略.... const res = await db.collection('orders') .aggregate() .addFields(fields) .match(conditions) .lookup({ from: 'users', let: { _openid: '$_openid' }, pipeline: $.pipeline() .match(_.expr($.eq(['$_openid', '$$_openid']))) .project({ _id: 0, staffNickName: 1, nickName: 1 }) .done(), as: 'userList' }) .sort({ addTime: -1 }) .skip(skip) .limit(100) .addFields({ addTimeS: $.dateToString({ date: '$addTime', format: '%Y-%m-%d %H:%M:%S', timezone: 'Asia/Shanghai' }) }) .end() 详细错误日志如下: START RequestId: a03972e1-311-11ea-a6f9-525400235f2a Event RequestId: a03972e1-311-11ea-a6f9-525400235f2a TypeError: $.pipeline is not a function at EventHandler.exports.main [as realHandler] (/var/user/index.js:11719) at EventHandler.handle (/var/runtime/node8/bootstrap.js:40528) at invoke (/var/runtime/node8/bootstrap.js:20822) at Timeout.setTimeout [as _onTimeout] (/var/runtime/node8/bootstrap.js:137) at ontimeout (timers.js:47511) at tryOnTimeout (timers.js:310) at Timer.listOnTimeout (timers.js:270) END RequestId: a03972e1-311-11ea-a6f9-525400235f2a Report RequestId: a03972e1-311-11ea-a6f9-525400235f2a Duration:ms Memory:256MB MaxMemoryUsed:34.148438MB 如标题提示错误,大家遇到过吗?我目的是让子查询输出字段少一些。如果绕开pipeline,还可以用什么办法?
2020-01-07 - 云开发有提供后台长时间运行的机制吗?
云函数目前最大执行时间为20秒,如果有些逻辑或者数据库操作比较耗时,想让它在后台默默运行,前台可以不需要立即得到响应,有什么机制可以用?
2019-12-30 - 云函数里调用cloud.callFunction,可能参数数据量有点大,它既不执行也不报错什么鬼?
有一个查询数据并导出excel的业务流程,当数据组装好了开始调用导出云函数时: console.log(1) console.log(array.length) const resFile = await cloud.callFunction({ name: "exportToExcel", data: { cloudPath, array, rangeArray: rangeArray, name: '订单列表' } }) console.log(2) 打印的日志内容是: 2019-12-29T06:19:55.927Z 1 2019-12-29T06:19:55.928Z 1821 2019-12-29T06:19:56.414Z 2 可以看出来,exportToExcel被执行了半秒钟左右,但是问题来了,返回结果resFile不正常,是undefined,然后云开发后台查阅exportToExcel,没有调用记录,这是什么鬼? 大概是数据量太大出错,因为array length在几百的时候都没问题的。但又无法判断是哪个环节出错了。 一并附上exportToExcel的代码,就是组织参数调用第三方nodejs的一个云函数: // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const xlsx = require('node-xlsx'); // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() const array = event.array const cloudPath = event.cloudPath const name = event.name const rangeArray = event.rangeArray var buffer = await xlsx.build([{ name: name, data: array }], { '!merges': rangeArray }); return await cloud.uploadFile({ cloudPath: cloudPath, fileContent: buffer }) } 请指教,谢谢。
2019-12-29 - 管理员请看下,为什么我的云文件分享链接被多人投诉,已停止访问?
https://6d72-mr-z-release-1259422646.tcb.qcloud.la/export/oVCJa5NPE9wJ1jV7gQphR1l6EfBg/O20191224170257319.xlsx 我这个链接是在小程序中动态创建的,而且是非公开,只有创建该文件的用户自己能看到,外人是看不到的,怎么就这样了? [图片]
2019-12-24 - input的blur在某些情况下不触发?
类似这样的例子,blur之后立即回退页面。 做了一个代码片段,调试器里显示“blur works”,手机上会显示“blur does not work” https://developers.weixin.qq.com/s/tdWZ9FmW7Zdf
2019-12-13 - 云数据库中使用expr时,遇到null不work?
因为我match里有好多field需要匹配,希望使用类似_.expr($.and[])这样的方式组合多个field匹配条件。 但是我发现当尝试match({field: null})可以匹配到结果的时候,换成了match(_.expr($.eq(['$field', null])))后匹配到结果为0。
2019-12-06 - 云开发文档大改版?怎么漏了好几个内容
expr和RegExp都搞丢了
2019-11-23 - db.RegExp如何用在多字段or操作里?
看文档里说明db.RegExp不支持用在db.command里,但目前我的需求是,在match阶段,针对3个字段or操作,正则匹配一个关键词,应该如何写? 报错如下: [代码]errMsg: [FailedOperation] (Location15983) An object representing an expression must have exactly one field: { $regex: [代码][代码]"关键词"[代码][代码], $options: [代码][代码]"i"[代码] [代码]}; ; at cloud.callFunction api[代码] 我大致的需求是这样的: [代码]const reg = [代码][代码]new[代码] [代码]db.RegExp({[代码][代码] [代码][代码]regexp: [代码][代码]'关键词'[代码][代码],[代码][代码] [代码][代码]options: [代码][代码]'i'[代码][代码],[代码][代码] [代码][代码]})[代码] [代码]...[代码][代码].match(_.expr([代码][代码] [代码][代码]$.or([[代码][代码] [代码][代码]$.eq([[代码][代码]'$nickName'[代码][代码], reg]),[代码][代码] [代码][代码]$.eq([[代码][代码]'$deliverInfo.userName'[代码][代码], reg]),[代码][代码] [代码][代码]$.eq([[代码][代码]'$deliverInfo.telNumber'[代码][代码], reg])[代码][代码] [代码][代码]])[代码][代码] [代码][代码]))[代码] 我尝试不用$.or,先匹配一个字段也会报错 [代码]...[代码][代码].match(_.expr([代码][代码] [代码][代码]$.eq([[代码][代码]'$nickName'[代码][代码], reg]),[代码][代码] [代码][代码]))[代码]
2019-11-06 - 云函数中引入第三方nodejs模块,怎么不认识exports default?
用了一个发货地址智能解析第三方模块,在模块中export是这样的: [代码]exports.ParseAddress = ParseAddress;[代码][代码]exports.AREA = _area2.[代码][代码]default[代码][代码];[代码][代码]exports.Utils = _utils2.[代码][代码]default[代码][代码];[代码][代码]exports.[代码][代码]default[代码] [代码]= [代码][代码]new[代码] [代码]ParseAddress();[代码] 该模块给出的调用demo是这样的: [代码]import AddressParse from [代码][代码]'address-parse'[代码][代码];[代码] [代码]const [result] = AddressParse.parse([代码][代码]'福建省福州市福清市石竹街道义明综合楼3F,15000000000,asseek'[代码][代码]);[代码] 而我必须这样使用才可以,好怪: [代码]// 云函数入口文件[代码][代码]const AddressParse = require([代码][代码]'address-parse'[代码][代码])[代码] [代码]// 云函数入口函数[代码][代码]exports.main = async (event, context) => {[代码] [代码] [代码][代码]const [result] = AddressParse.[代码][代码]default[代码][代码].parse([代码][代码]'福建省福州市福清市石竹街道义明综合楼3F,15000000000,asseek'[代码][代码])[代码] [代码] [代码][代码]return[代码] [代码]{[代码][代码] [代码][代码]result[代码][代码] [代码][代码]}[代码][代码]}[代码] 该模块的github为: github地址
2019-11-04 - 云数据库聚合用group时,有记录数limit 20条,最大100条的限制吗?
我理解没有用group时,会有这个限制,用了group时,不会有限制,对吗?
2019-10-12