node-webot / co-wechat

Wechat for Koa
427 stars 91 forks source link

Non-whitespace before first tag #47

Closed lhwu closed 4 years ago

lhwu commented 4 years ago

公众号发消息时,后端日志报下面的错误,导致后续代码未执行! 版本:2.4.0 koa版本:2.8.2 报错信息

Error: Non-whitespace before first tag.
    Line: 0
    Column: 1
    Char:
        at error (/home/github/repo/node_modules/co-wechat/node_modules/sax/lib/sax.js:642:8)
        at strictFail (/home/github/repo/node_modules/co-wechat/node_modules/sax/lib/sax.js:662:22)
        at SAXParser.write (/home/github/repo/node_modules/co-wechat/node_modules/sax/lib/sax.js:935:11)
        at Parser.exports.Parser.Parser.parseString (/home/github/repo/node_modules/co-wechat/node_modules/xml2js/lib/xml2js.js:403:31)
        at Parser.parseString (/home/github/repo/node_modules/co-wechat/node_modules/xml2js/lib/xml2js.js:6:61)
        at Object.exports.parseString (/home/github/repo/node_modules/co-wechat/node_modules/xml2js/lib/xml2js.js:433:19)
        at Promise (/home/github/repo/node_modules/co-wechat/lib/wechat.js:19:12)
        at new Promise (<anonymous>)
        at parseXML (/home/github/repo/node_modules/co-wechat/lib/wechat.js:18:10)
        at /home/github/repo/node_modules/co-wechat/lib/wechat.js:259:34
        at process._tickCallback (internal/process/next_tick.js:68:7)

代码:

import originWechat from 'co-wechat';

const middleware = () => {
  const { appid, aes, token } = wechatAccount;
  const wechat = originWechat({ appid, encodingAESKey: aes, token });
  return wechat.middleware(bot);
};

export const register = ({ router, wechat, open }) => {
  open.get('/wechat', middleware());
  open.post('/wechat', middleware());
};
lhwu commented 4 years ago

aes 错误导致的,解析 xml 乱码