情况:即前端发送请求后确实能拿到数据,数据就是经过云函数中业务逻辑包装好的样子,但是云函数中无论是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中
onLaunch: function () {
this.getUserInfo();
wx.cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
traceUser: true
})
wx.cloud.callFunction({
name: 'back',
data: {
$url: 'user'
},
success: res => {
console.log('123', res); //这里能正确获得后端传来的数据
}
})
结果:
后端本地调试
前端控制台
使用手动模拟触发:
在另外一个问题看到 https://developers.weixin.qq.com/community/develop/doc/00020e22dd473863e7eb5bc7c56000
基础库调到2.14.1
同样是这样,接口请求根本走不到本地开发,还是云端的
我也遇到这个问题了,开启本地调试,模拟器发起请求走的还是云端的函数。不知道咋回事