老师为啥我代码评论查询后 整个blog云函数都调用失败了?

来源:6-7 博客详情功能--云数据库多集合查询

weixin_慕仔6263612

2022-09-02

// pages/blog-comment/blog-comment.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
            console.log(options);
          
            this._getBlogDetail(options.blogid)

    },
   _getBlogDetail(blogId){
            wx.showLoading({
              title: '加载中',
              mask:true
            })
            wx.cloud.callFunction({
                name:'blog',
                data:{
                    blogId,
                    $url:'detail',
                  
                }
            }).then(res=>{
                wx.hideLoading()
                console.log(res);
            })
   },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})
``
这是blogcomment.js

// 云函数入口文件
let MAX_LIMIT=100//每次查询评论条数
const cloud = require(‘wx-server-sdk’)
cloud.init({
env: ‘demo01-0gg83d2n28cedfac’//默认环境配置,传入字符串形式的环境 ID 可以指定所有服务的默认环境,传入对象可以分别指定各个服务的默认环境
})
const db =cloud.database()
const TcbRouter=require(‘tcb-router’)
const blogCollection=db.collection(‘blog’)

// 云函数入口函数
exports.main = async (event, context) => {
const app=new TcbRouter({
event
})

app.router(‘list’, async (ctx, next) => {
//模糊查询
const keywords=event.keywords
console.log(keywords);
let w={}
if(keywords.trim()!=’’){
w={
content:new db.RegExp({
regexp:keywords,
options:‘i’
})
}
}

// const keyword = event.keywords
// let w = {}
// if (keyword.trim() != ‘’) {
// w = {
// content: new db.RegExp({
// regexp: keyword,
// options: ‘i’
// })
// }
// }
let blogList = await blogCollection.where(w).skip(event.start).limit(event.count)
.orderBy(‘createTime’, ‘desc’).get().then((res) => {
return res.data
})

ctx.body = blogList

})

app.router(‘detail’,async(ctx,next=>{
let blogId=event.blogId
//博客详情查询
let detail= await blogCollection.where({
_id:blogId
}).get().then((res)=>{
res.data
})

//   评论查询
 const countResult = await db.collection('blog-comment').count()
const total = countResult.total
let commentList = {
  data: []
}
if (total > 0) {
  const batchTimes = Math.ceil(total / MAX_LIMIT)
  const tasks = []
  for (let i = 0; i < batchTimes; i++) {
    let promise = db.collection('blog-comment').skip(i * MAX_LIMIT)
      .limit(MAX_LIMIT).where({
        blogId
      }).orderBy('createTime', 'desc').get()
    tasks.push(promise)
  }
  if (tasks.length > 0) {
    commentList = (await Promise.all(tasks)).reduce((acc, cur) => {
      return {
        data: acc.data.concat(cur.data)
      }
    })
  }

}

  ctx.body={
      commentList,
      detail
  }

}))

return app.serve()
}```
这是云函数
屏蔽了 查询评论代码就行

写回答

1回答

谢成

2022-09-05

调用失败的话,可以查看下云函数的错误信息是什么,根据错误信息来确定问题。

0
0

微信小程序云开发-从0打造云音乐全栈小程序

横跨小程序端、云后端、CMS一站式云开发的小程序全栈课程

1938 学习 · 2768 问题

查看课程