co-body是TJ大牛編寫的使用Generator
解析表單的模塊。git
當前co-body
僅顯示支持:application/json
、application/x-www-form-urlencoded
和text/plain
,而有時候咱們須要接收xml格式的數據(其類型爲text/xml
),能夠經過以下方式增長其對xml的支持:github
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格式,可能還須要進一步修改。json
以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字符串將以純文本的形式完整的接收,以便進一步處理。微信
此場景適用於微信服務器的推送消息。app
轉載請註明出處:http://my.oschina.net/u/2324376/blog/392975koa