co-body是TJ大牛编写的使用Generator
解析表单的模块。
当前co-body
仅显示支持:application/json
、application/x-www-form-urlencoded
和text/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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。