加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为co-body增加xml等文本类型的支持

发布时间:2020-12-16 06:24:32 所属栏目:百科 来源:网络整理
导读:co-body是TJ大牛编写的使用 Generator 解析表单的模块。 当前 co-body 仅显示支持: application/json 、 application/x-www-form-urlencoded 和 text/plain ,而有时候我们需要接收xml格式的数据(其类型为 text/xml ),可以通过如下方式增加其对xml的支持

co-body是TJ大牛编写的使用Generator解析表单的模块。

当前co-body仅显示支持:application/jsonapplication/x-www-form-urlencodedtext/plain,而有时候我们需要接收xml格式的数据(其类型为text/xml),可以通过如下方式增加其对xml的支持:

  • 在lib目录下复制json.js文件一份,改名为textxml.js,修改try{ done(null,JSON.parse(str); }try{ done(null,str); },即不做任何解析,直接保存。
  • 修改根目录下的any.js,增加var text = require('./textxml');并在exports函数中的json解析逻辑后增加这样一句if ('text/xml' == type) return text(req,opts);要支持其他文本类型,稍作修改即可。
  • 修改根目录下的index.js,增加exports.text = require('./lib/textxml');,以供其他程序调用。

在使用koa-body等包含co-body的工具中,要支持xml格式,可能还需要进一步修改。

koa-body为例,修改其根目录下的index.js文件的function requestbody,在合适位置增加如下内容:

<!-- lang: js -->
else if (this.is('text/xml'))  { // 返回对应的Content-Type,若无效,为false
  body = yield buddy.text(this,{encoding: opts.encoding,limit: opts.jsonLimit});
}

这样,xml字符串将以纯文本的形式完整的接收,以便进一步处理。

此场景适用于微信服务器的推送消息。

转载请注明出处:http://my.oschina.net/u/2324376/blog/392975

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读