您的位置:首页 > 其它

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

2015-03-28 00:00 211 查看
摘要: 为co-body增加简单XML支持,以便能顺利接受text/xml数据。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐