Closed ihellodays closed 7 years ago
在调试进去,getRawBody 这个函数最后一行
return new Promise(function executor (resolve, reject) { readStream(stream, encoding, length, limit, function onRead (err, buf) { if (err) return reject(err) resolve(buf) })
resolve(buf)这里的buf输出是有内容的
就是上一层await不出来结果
var xml = await getRawBody(ctx.req, {
length: ctx.header.length,
limit: '1mb',
encoding: ctx.request.charset || 'utf-8'
});
console.log(xml);
后面一直都没有输出
我不知道你是怎么操作的啊,你用单元测试中的代码试试看?
用的是thinkjs框架 我们在controller 里面直接用
//公众号入口
async indexAction() {
//post过来处理
let appid = this.get('appid');
let config= await this.model('mp').get(appid);
let wetchat = require('co-wechat')(config);
await wetchat.middleware(async(msg) => {
console.log( msg );
})(this.ctx,()=>{});
return true;
}
一直都没有返回 console.log( msg );
并没有针对 thinkjs 做过兼容。
出现问题应该是因为 request body 已经被解析了。
跟踪代码到 await getRawBody(ctx.req这里,await一直没有返回。。