爲co-body增長xml等文本類型的支持

co-body是TJ大牛編寫的使用Generator解析表單的模塊。git

當前co-body僅顯示支持:application/jsonapplication/x-www-form-urlencodedtext/plain,而有時候咱們須要接收xml格式的數據(其類型爲text/xml),能夠經過以下方式增長其對xml的支持:github

  • 在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格式,可能還須要進一步修改。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

相關文章
相關標籤/搜索