restify 框架支持wechat微信中间件

   今天一个朋友遇到一个问题restify不支持wechat 中间件  花费了好久 找到了问题的根本 最后也是我的朋友搞定的  在这里我把修改的方法奉上 其实是因为restify 对xml的支持解析方式不一样导致的  需要修改wechat源码

var load = function (stream, callback) {
  // support content-type 'text/xml' using 'express-xml-bodyparser', which set raw xml string
  // to 'req.rawBody'(while latest body-parser no longer set req.rawBody), see
  // https://github.com/macedigital/express-xml-bodyparser/blob/master/lib/types/xml.js#L79
  //修改此处 原本是stream.rawBody 修改成现在的 即可支持
  if (stream.rawBody||stream.body) {
    callback(null, stream.rawBody||stream.body);
    return;
  }
 
  var buffers = [];
  stream.on('data', function (trunk) {
    buffers.push(trunk);
  });
  stream.on('end', function () {
    callback(null, Buffer.concat(buffers));
  });
  stream.once('error', callback);
};

  问题完美解决



实例