云函数用不了问题
来源:3-11 歌单数据去重
qq_慕运维2505117
2022-12-07
老师为什么云函数一直转圈,只有本地调试能用
// 云函数入口文件
const cloud = require(‘wx-server-sdk’)
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
const axios = require(‘axios’)
const playlistCollection = db.collection(‘playlist’)
const MAX_LIMIT = 100
// 云函数入口函数
exports.main = async (event, context) => {
const countResult = await playlistCollection.count()
const total = countResult.total
const batchTimes = Math.ceil(total / MAX_LIMIT)
const tasks = []
for (let i = 0; i < batchTimes; i++) {
let promise = playlistCollection.skip(i * MAX_LIMIT).limit(MAX_LIMIT).get()
tasks.push(promise)
}
let list = {
data: []
}
if (tasks.length > 0) {
list = (await Promise.all(tasks)).reduce((acc, cur) => {
return {
data: acc.data.concat(cur.data)
}
})
}
// 更新代码: axios发送请求,请求新的URL
const {
data
} = await axios.get(URL)
if (data.code >= 1000) {
console.log(data.msg)
return 0
}
const playlist = data.result
const newData = []
for (let i = 0, len1 = playlist.length; i < len1; i++) {
let flag = true
for (let j = 0, len2 = list.data.length; j < len2; j++) {
if (playlist[i].id === list.data[j].id) {
flag = false
break
}
}
if (flag) {
// 更新代码: 给每个歌单信息增加createTime属性
let pl = playlist[i]
pl.createTime = db.serverDate()
// newData.push(playlist[i])
newData.push(pl)
}
}
console.log(newData)
// 更新代码: 一次性批量插入数据
if (newData.length > 0) {
await playlistCollection.add({
data: […newData]
}).then((res) => {
console.log(‘插入成功’)
}).catch((err) => {
console.log(err)
console.error(‘插入失败’)
})
}
return newData.length
}
1回答
-
谢成
2022-12-08
本地调试运行结果成功的话说明代码是没问题。
一直转圈指的是哪里转圈,会不会是没有成功上传。可以换个网络环境重新上传试试。
042023-03-30
相似问题