提示找不到對應的FunctionName或提示數據庫或數據集合未定義-微信小程序雲函數操作數據庫(添加/刪除/修改)踩坑


雲函數操作數據庫(添加/刪除/修改)踩坑

調用雲函數時,已經上傳了雲函數,但提示找不到對應的FunctionName 或提示數據庫或數據集合未定義的問題:

官方文檔里沒有提到,百思不得其解。最后在微信開放社區提問找到了答案↓

原因:小程序可能存在多個雲環境,如果在調用雲函數(wx.cloud.callFunction)的時候未指定雲環境則會導致小程序找不到雲函數入口

解決如下:在調用時聲明雲環境,即加上config

1 wx.cloud.callFunction({
2     config:{ env: '環境ID' }
3     ...
4 })

 

完整添加函數如下:

 1 wx.cloud.callFunction({
 2           config:{ env: 'public-i10xo' },
 3           name:'cloudAdd',
 4           data:{
 5             bh:list[i].bianhao,
 6             xingh:list[i].xinghao,
 7             wd:wangdian,
 8             xuh:noteIndex,
 9             sj:nowdate,
10           },
11           success:function(res){
12             console.log(res)
13           }
14         })

對應的雲函數:

 1 // 雲函數入口文件
 2 const cloud = require('wx-server-sdk')
 3  4 cloud.init({
 5   env:cloud.DYNAMIC_CURRENT_ENV
 6 })//這句也很重要!!
 7  8 const db = cloud.database()
 9 // 雲函數入口函數
10 exports.main = async (event, context) => {
11   const wxContext = cloud.getWXContext()
12   return await db.collection('List').add({
13     data:{
14       編號:event.bh,
15       型號:event.xingh,
16       網點:event.wd,
17       序號:event.xuh,
18       時間:event.sj,
19     }
20 21   })
22 }

附上刪除函數:

 1 wx.cloud.callFunction({
 2           config:{ env: 'public-i10xo' },
 3           name:"xingRemove",
 4           data:{
 5             currentv:currentvalue
 6           },
 7           success:res=>{
 8             console.log(res)
 9             wx.showToast({
10               title: '刪除成功',
11               icon:'none',
12               duration: 2000
13               })
14           },
15           fail:err=>{
16             console.log(err)
17           }
18         })

對應的雲函數:

// 雲函數入口文件
const cloud = require('wx-server-sdk')
​
cloud.init({
  env:cloud.DYNAMIC_CURRENT_ENV
})
​
const db = cloud.database()
// 雲函數入口函數
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
​
  return await db.collection('XingHao').where({
    型號:event.currentv
  }).remove()
}

修改函數:

 1 wx.cloud.callFunction({
 2     config:{ env: 'public-i10xo' },
 3     name:"xingUpdate",
 4     data:{
 5       oldv:old,
 6       newv:input
 7     },
 8     success:res=>{
 9       console.log(res)
10       wx.showToast({
11         title: '修改成功',
12         icon:'none',
13         duration: 2000
14         })
15     },
16     fail:err=>{
17       console.log(err)
18     }
19   })

對應的雲函數:

 1 // 雲函數入口文件
 2 const cloud = require('wx-server-sdk')
 3  4 cloud.init({
 5   env:cloud.DYNAMIC_CURRENT_ENV
 6 })
 7  8 const db = cloud.database()
 9 // 雲函數入口函數
10 exports.main = async (event, context) => {
11   const wxContext = cloud.getWXContext()
12 13   return await db.collection('XingHao').where({
14     型號:event.oldv
15   })
16   .update({
17     data: {
18       型號: event.newv
19     },
20   })
21 }

運行成功,感謝大佬回答!!

提問傳送門: https://developers.weixin.qq.com/community/develop/doc/0008c05375060007bdba4380256000

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM