我的云函数代码:
// 云函数代码
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const axios = require('axios')
exports.main = async (event, context) => {
const a =await axios({
method:'GET',
url:"https://baidu.com",
})
return a
}
如上,请求后,本地测试,第一次是能正常返回,但再调用一次就会出现“node.js:1 [warn] 1 个请求正在等待执行(在本地调试中,每个云函数有一个本地实例,请求串行执行)”
小程序前端报错为:TypeError: Converting circular structure to JSON
找到原因了:
axios不能直接使用response赋值和打印response,否则会报错“Converting circular structure to JSON”,非要打印response查看时要用util.inspect()将其转为字符串,返回的数据用response.data取出。
const cloud = require('wx-server-sdk') const axios = require('axios') const util = require('util'); cloud.init() exports.main = async (event, context) => { const wxContext = cloud.getWXContext() var responsedata await axios.get('http://wxapi.shinytengxvnyun.cn/weixinapi/getuser') .then(function (response) { // console.log(response);不能直接使用response赋值和打印response console.log(util.inspect(response)); responsedata = response.data }) return { openid: wxContext.OPENID, responsedata: responsedata } }
这个应该是你的问题,你把调用这个函数的方法贴出来看看,一般出现这个错误,是下图这种原因出现的,你可能构造了一个循环引用的对象给json序列化