index.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // 云函数入口文件
  2. const cloud = require('wx-server-sdk')
  3. cloud.init()
  4. const db = cloud.database()
  5. // 云函数入口函数
  6. exports.main = async (event, context) => {
  7. let {
  8. OPENID
  9. } = cloud.getWXContext()
  10. if (event.pub_id) {
  11. const messages = await db.collection('message')
  12. .aggregate()
  13. .match({
  14. pub_id: event.pub_id
  15. })
  16. .sort({
  17. publish_time: -1
  18. })
  19. .skip(event.page_token)
  20. .limit(event.page_size)
  21. .end()
  22. return {
  23. list: messages.list,
  24. next_page_token: event.page_token + event.page_size
  25. }
  26. } else {
  27. const messages = await db.collection('message')
  28. .aggregate()
  29. .sort({
  30. publish_time: -1
  31. })
  32. .skip(event.page_token)
  33. .limit(event.page_size)
  34. .lookup({
  35. from: 'publisher',
  36. localField: 'pub_id',
  37. foreignField: '_id',
  38. as: 'publisher'
  39. })
  40. .end()
  41. return {
  42. list: messages.list,
  43. next_page_token: event.page_token + event.page_size
  44. }
  45. }
  46. }