- 云函数异步调用的一些疑惑?
看文档https://docs.cloudbase.net/cloud-function/deep-principle中云函数相关描述 exports.main = async (event = {}, context) => { setTimeout(() => { console.log("rid: ", context.request_id); }, 0); return "ok"; }; 对于异步函数,主流程(例如示例中的 await main(event, context))执行完成后,函数实例进程会被冻结, 进程中的所有异步任务会暂停执行,直到这个进程被再次唤起。 setTimeout中的日志有时候可能不会输出。 如果setTimeout是另一个云函数的异步调用,会不会也像上面那样调用结果不确定呢?比如修改上面代码如下: exports.main = async (event = {}, context) => { cloud.callFunction({ name: 'xxx' }).then(res => { console.log("xxx execute result = " + res); }) return "ok"; }; 求大神解惑
2023-09-10 - 数据库像SQL中那样用CASE语句更新字段?
我有个场景需要按条件更新数据库中的数据,比如数据库表students是这样的(https://www.liaoxuefeng.com/wiki/1177760294764384/1179611161425120上测试) [图片] SQL中可以按下面这样实现 UPDATE students SET score = CASE id WHEN 1 THEN 70 WHEN 2 THEN 90 END, class_id = CASE id WHEN 1 THEN 4 WHEN 2 THEN 5 END WHERE id in(1,2) 执行结果也符合预期 [图片] 想问下大神在小程序中,这种更新语句应该怎么写,看了文档中有switch和cond,但没找到更新时如何用的例子
2023-09-09 - 云函数中调用云函数是有什么限制吗?
本地调试云函数调用时,出现以下异常。 云函数结构大致如下 [图片] 我的用法类似于在getOpenId内通过cloud.callFunction调用sumRecord,把出错的文件放在其他的云函数目录下,就没问题,虽然可以通过这种方式解决问题,但想知道是什么原因导致会出现下面这种异常情况的,求大神指点解惑 node.js:1 [error] Unhandled Rejection at: Promise {<rejected>: Error: callFunction:fail callFunction:fail 400 Bad Request | [http://tl-4gthy7p960a2458e.tcb-api.t…, Symbol(async_id_symbol): 4954, Symbol(trigger_async_id_symbol): 4944, Symbol(destroyed): {…}} reason: Error: callFunction:fail callFunction:fail 400 Bad Request | [http://tl-4gthy7p960a2458e.tcb-api.tencentcloudapi.com/admin?&eventId=18a6ebe7183_1&seqId=18a6ebe7183_1] at exports.E (xxx/cloudfunctions/ugc/node_modules/@cloudbase/node-sdk/lib/utils/utils.js:29:12) at xxx/cloudfunctions/ugc/node_modules/@cloudbase/node-sdk/lib/utils/httpRequest.js:100:27 at processTicksAndRejections (node:internal/process/task_queues:96:5) at async Object.exports.default (xxx/cloudfunctions/ugc/node_modules/@cloudbase/node-sdk/lib/utils/httpRequest.js:373:21) at async xxx/cloudfunctions/ugc/node_modules/wx-server-sdk/index.js:1724:29
2023-09-07 - 云开发用createCollection创建集合后,怎么设置集合中的索引?
可用通过代码动态设置吗,还是只能在云开发的后台数据库管理中建立索引?
2023-09-06 - 订阅消息模版中的字段都是必选的吗?
我在订阅消息中,从公共模板库选了一个审核通知的模版。详情如下 [图片] 拒绝理由这个字段我可以动态配置吗,因为审核过的话,是不需要拒绝理由的。 不能动态配置的话,是否我需要再配置一个模版呢,麻烦大神帮忙看看。。
2023-09-05 - mediaCheckAsync色情图片鉴别一直pass?
trace_id 为64f5844b-7c2f2fe6-6bb5fa12,麻烦帮忙看一下。。。 回调返回结果去除转义后为 { "CreateTime":1693811788, "Event":"wxa_media_check", "FromUserName":"xxx", "MsgType":"event", "ToUserName":"xxx", "appid":"xxx", "detail":[ { "errcode":0, "label":100, "prob":90, "strategy":"content_model", "suggest":"pass" } ], "errcode":0, "errmsg":"ok", "result":{ "label":100, "suggest":"pass" }, "trace_id":"64f5844b-7c2f2fe6-6bb5fa12", "userInfo":{ "appId":"xxx", "openId":"xxx" }, "version":2 }
2023-09-04 - 数据库lookup联表查询问题?
我有两个数据表,一个ugc_comment表,一个user表,现在想查询带回复的评论列表,列表中有用户信息,通过lookup查询,可以获取到主评论相关的回复列表和用户信息,但回复列表(replyList)中的用户信息不知道怎么查询才能获取到。有大神能帮忙看下吗? 查询结果如下: [ { "_id":"aefa8b0064f190db009c3be729a242b1", "ugcId":"e8d27cb364ec5f2b0000a0f22c201605", "content":"111", "pid":null, "gid":null, "publishTime":1693552859878, "userInfo":{ "openid":"xxx", "nickName":"xxx", "avatarUrl":"xxx" }, "floor":1, "replyList":[ ] }, { "_id":"e8d27cb364f1b44800a2eb2c15ab0357", "ugcId":"e8d27cb364ec5f2b0000a0f22c201605", "content":"222", "pid":null, "gid":null, "publishTime":1693561928633, "floor":2, "replyList":[ { "_id":"aefa8b0064f1c4e900a2c2e252fcdc34", "ugcId":"e8d27cb364ec5f2b0000a0f22c201605", "content":"reply 222", "pid":"e8d27cb364f1b44800a2eb2c15ab0357", "gid":"e8d27cb364f1b44800a2eb2c15ab0357", "publishTime":1693566185211, "openId":"xxx", "floor":2 }, { "_id":"6cc20b0164f1e86f00a963156a319cb4", "ugcId":"e8d27cb364ec5f2b0000a0f22c201605", "content":"222-333", "pid":"e8d27cb364f1b44800a2eb2c15ab0357", "gid":"e8d27cb364f1b44800a2eb2c15ab0357", "publishTime":1693575279559, "openId":"xxx", "floor":2 } ], "userInfo":{ "openid":"xxx", "nickName":"xxx", "avatarUrl":"xxx" } }, { "_id":"885b678664f1b4d4001898b536c4a7aa", "ugcId":"e8d27cb364ec5f2b0000a0f22c201605", "content":"333", "pid":null, "gid":null, "publishTime":1693562068886, "floor":3, "replyList":[ ], "userInfo":{ "openid":"xxx", "nickName":"xxx", "avatarUrl":"xxx" } } ] 查询代码如下: db.collection('ugc_comment').aggregate() .match({ // ugcId为文章id ugcId: "xxx", // pid为评论的父id pid: null }) .sort({ // 评论发布时间升序 publishTime: 1, }) .skip(0) .limit(20) // 本来想新建评论回复表来获取回复列表的,但发现这么写也可以获取到... .lookup({ from: 'ugc_comment', localField: '_id', foreignField: 'gid', as: 'replyList' }) // 从user表查询评论关联的用户信息 .lookup({ from: 'user', localField: 'openId', foreignField: 'openid', as: 'userInfo' }).unwind('$userInfo') // 去掉不需要的字段 .project({ "userInfo._id": 0, "userInfo.gender":0, "userInfo.homeCodes":0, "userInfo.homePageImg":0, "userInfo.identityType":0, "userInfo.phoneNumber":0, "userInfo.intro":0, "userInfo.unionid":0, openId: 0, }) .end();
2023-09-02