收藏
回答

云函数中使用axios,只能运行一次?

我的云函数代码:

// 云函数代码
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

回答关注问题邀请回答
收藏

2 个回答

  • 刘欣Eden
    刘欣Eden
    2023-05-19

    找到原因了:

    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
      }
    }
    




    2023-05-19
    有用
    回复 1
  • ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
    ؞咬了你؞F࿆ū࿆t࿆ū࿆r࿆ē࿆
    2023-05-19

    这个应该是你的问题,你把调用这个函数的方法贴出来看看,一般出现这个错误,是下图这种原因出现的,你可能构造了一个循环引用的对象给json序列化

    2023-05-19
    有用
    回复
登录 后发表内容