收藏
回答

本地调试中,前端发送请求能够获取到数据,但云函数本地调试控制台没反应?

情况:即前端发送请求后确实能拿到数据,数据就是经过云函数中业务逻辑包装好的样子,但是云函数中无论是app.use还是对应的app.router中的console.log都没有执行,好像整个云函数都没有执行一样,本地调试控制台里什么反应都没有,前端的控制台也没有出现“调用云函数xxx”的那一长串提示。但是直接在本地调试手动模拟触发可以正常显示console.log中的内容,想问问这是怎么回事?应该不是正常现象吧?

1.之前按照网上的一个练习项目的教程做过一个简单的小程序,没遇到这样的情况,一切正常。

2.这次也是按照一样的步骤配置了tcb-router,不过使用了新建的第二个免费环境,直接使用tcb-router在github上的测试代码前端就能拿到res,但云函数本地调试控制台中没有反应。


3.前端控制台也没有出现“调用云函数xxxxx”的那段提示

4.尝试过删掉云函数重新上传部署,也不行



前端控制台没有这个:

云函数本地调试在被调用时没有显示这些:




这是我测试时把多余的东西都去掉,测试前后端交互时候用的代码,也还是一样的情况:

// 云函数入口文件
const cloud = require('wx-server-sdk')
const TcbRouter = require('tcb-router')


cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
  traceUser: true
})


// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const app = new TcbRouter({
    event
  })
  app.use(async (ctx, next) => {
    console.log('i get it!');
    ctx.data = {};
    next();
  })

app.router('user'async (ctx, next) => {
    ctx.data.name = 'hello world';
    ctx.body = {
      code: 0,
      data: ctx.data
    };
    await next()
  })
  return app.serve()

}


//前端app.js的APP中

onLaunchfunction () {
    this.getUserInfo();
    wx.cloud.init({
      env: cloud.DYNAMIC_CURRENT_ENV,
      traceUsertrue
    })
    wx.cloud.callFunction({
      name'back',
      data: {
        $url'user'
      },
      successres => {
        console.log('123', res); //这里能正确获得后端传来的数据
      }
    })


结果:

后端本地调试

前端控制台

使用手动模拟触发:



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

3 个回答

  • Zephyr欣
    Zephyr欣
    2021-04-02

    在另外一个问题看到 https://developers.weixin.qq.com/community/develop/doc/00020e22dd473863e7eb5bc7c56000

    基础库调到2.14.1

    2021-04-02
    有用 2
    回复 1
    • 困难
      困难
      2021-04-07
      谢谢,确实是这个问题
      2021-04-07
      回复
  • 2021-04-02

    同样是这样,接口请求根本走不到本地开发,还是云端的

    2021-04-02
    有用
    回复
  • ET
    ET
    2021-03-27

    我也遇到这个问题了,开启本地调试,模拟器发起请求走的还是云端的函数。不知道咋回事

    2021-03-27
    有用
    回复
登录 后发表内容
问题标签