今天一个朋友遇到一个问题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);
};问题完美解决
