befinal / node-tenpay

微信支付 for nodejs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请问koa-body能代替bodyparser吗?

Thyiad opened this issue · comments

Hi,我现在用了koa-body,因为他集成了解析body和上传文件,但看文档说是不支持xml解析的。
商户号还没下来,还没法自己去测试,所以打扰问一下,是否支持呀?
不行的话就只能回退到bodyparser+multer同时用了。。

commented

可以, 只要能接收正常的post数据就可以

谢谢你这么快回复
因为微信的消息是xml格式,但koa-body不支持解析xml的话,猜测tenpay里面就收不到数据了
你都说了可以,我到时候自己试试哈,谢谢拉

commented

具体可以看一下文档说明, 通过extendTypes将XML当作文本接收处理

app.use(bodyParser({
  enableTypes: ['json', 'form', 'text'],
  extendTypes: {
    text: ['text/xml', 'application/xml']
  }
}));

哦哦,有看但没太注意。意思是xml解析是在tenpay中做的,那么koa-body不解析xml反而是对的了

commented

koa-body只需负责接收就行了, 保证ctx.request.body中有内容就可以

嗯嗯,我索性复制了一份koa-body的源码,把判断是否为text的地方加上了 */xml 的判断,xml的也按text处理,这样就能确保ctx.request.body为原来的xml文本值了
谢谢了