本地调试中,前端发送请求能够获取到数据,但云函数本地调试控制台没反应?
发布于 5 年前 作者 guojing 15107 次浏览 来自 问答

情况:即前端发送请求后确实能拿到数据,数据就是经过云函数中业务逻辑包装好的样子,但是云函数中无论是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); //这里能正确获得后端传来的数据
      }
    })

结果:

后端本地调试

前端控制台

使用手动模拟触发:

1 回复

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

回到顶部