npm install wechat-xml-parser微信推送消息解析
---


``
var app = require('express')();
var xmlParser = require('wechat-xml-parser');
app.use(xmlParser(options));
xml:
result:
{
"ToUserName": "gh_956b2584a111",
"FromUserName": "ovKXbsxcjA05QLUcShoQkAMfkECE",
"CreateTime": "1452142918",
"MsgType": "event",
"Event": "ShakearoundUserShake",
"ChosenBeacon": {
"Uuid": "121212121212",
"Major": "1111",
"Minor": "1111",
"Distance": "0.057"
},
"AroundBeacons": {
"AroundBeacon": [
{
"Uuid": "121212121212",
"Major": "2222",
"Minor": "2222",
"Distance": "166.816"
},
{
"Uuid": "121212121212",
"Major": "3333",
"Minor": "3333",
"Distance": "15.013"
}
]
}
}
`
options:
dataProp: xml 解析后的结果数据挂在到 req 对象上的属性名称,默认是 body
attrFormat: 数据格式化 例:{AppId:'123'} -> {app_id: '123'}
`
* keep 保持不变 {AppId: '123'} -> {AppId: '123'}
* lowerCase 转小写 {AppId: '123'} -> {appid: '123'}
* underscored 转小写并以下划线间隔 {AppId: '123'} -> {app_id: '123'}
* 也可是一个函数 function(attr){ return attr.toLowerCase(); }
* 默认为 keep
`
types: 数据流的 Content-Type ,未匹配上则不处理 默认为 ['text/xml', 'application/xml', 'application/*+xml']
* 也可以传入一个字符串 如 application/xml
token: 公众号 token appid: 公众号 appid encrypt_key:` 公众号加密 key
* 若需要解密 xml 数据,则需要配置以上 3 个参数