Skip to content

Commit 580fbec

Browse files
committed
updated
1 parent f67e456 commit 580fbec

File tree

5 files changed

+53
-13
lines changed

5 files changed

+53
-13
lines changed

README.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,29 @@ var nodeWeixinMessage = require('node-weixin-message');
3434
//在http请求里的处理方式
3535
app.get('weixin/text', function(req, res) {
3636
var messages = nodeWeixinMessage.messages;
37-
function text(message) {
38-
//只会被调用一次
37+
38+
function text(message, res, callback, extra) {
39+
//message => 解析后的JSON
40+
//res => res
41+
//callback => callback
42+
//extra => 'some data',
43+
44+
//Extra
3945
res.send(message);
4046
}
41-
//多次相同的回调函数只会被调用一次
47+
48+
//多次侦听相同的回调函数只会被调用一次
4249
messages.on.text(text);
4350
messages.on.text(text);
4451
messages.on.text(text);
52+
messages.onXML(req.body, res, function callback(message) {
53+
//After message handled.
54+
}
55+
//后面可以接系统允许的最大数量的参数,只要跟text的处理函数一一对应就可以了。
56+
//唯一不同的是req.body会被解析成JSON
57+
//,
58+
//'some data');
4559

46-
x2j.parseString(req.body, {
47-
explicitArray: false,
48-
ignoreAttrs: true
49-
}, function(error, json) {
50-
messages.parse(json.xml);
51-
});
5260
});
5361
```
5462

lib/incoming.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ module.exports = {
3636
on: ons,
3737
onXML: function(xml) {
3838
var self = this;
39+
var preArg = arguments;
3940
x2j.parseString(xml, {
4041
explicitArray: false,
4142
ignoreAttrs: true
@@ -44,8 +45,8 @@ module.exports = {
4445
throw Error('Failed Parsing XML!');
4546
}
4647
var args = [json.xml];
47-
for (var i = 1; i < arguments.length; i++) {
48-
args.push(arguments[i]);
48+
for (var i = 1; i < preArg.length; i++) {
49+
args.push(preArg[i]);
4950
}
5051
self.parse.apply(self, args);
5152
});

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "node-weixin-message",
3-
"version": "0.0.9",
3+
"version": "0.0.10",
44
"description": "",
55
"homepage": "",
66
"author": {

test/incoming.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,4 +355,35 @@ describe('node-weixin-message', function() {
355355
}
356356
http(r1, r2);
357357
});
358+
359+
it('should not be able to use onXML', function(done) {
360+
var r1 = {};
361+
var r2 = {};
362+
r2.send = function(message) {
363+
assert.equal(true, message.FromUserName === 'fromUser');
364+
assert.equal(true, message.ToUserName === 'toUser');
365+
assert.equal(true, message.CreateTime === '1351776360');
366+
assert.equal(true, message.MsgType === 'link');
367+
assert.equal(true, message.Title === '公众平台官网链接');
368+
assert.equal(true, message.Description === '公众平台官网链接');
369+
assert.equal(true, message.Url === 'url');
370+
assert.equal(true, message.MsgId === '1234567890123456');
371+
};
372+
373+
function http(req, res) {
374+
var messages = nodeWeixinMessage.messages;
375+
function A(message, res, cb, more) {
376+
assert.equal(res, r2);
377+
assert.equal(more, 'and more');
378+
res.send(message);
379+
cb();
380+
}
381+
messages.on.link(A);
382+
var xml = fs.readFileSync(path.resolve(__dirname, './messages/link.xml'));
383+
messages.onXML(xml, res, function() {
384+
done();
385+
}, 'and more');
386+
}
387+
http(r1, r2);
388+
});
358389
});

test/template.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('node-weixin-message', function () {
5555
}, function (error, data) {
5656
assert.equal(true, !error);
5757
if (data.errcode === 40036) {
58-
console.log(error, data);
58+
console.error(error, data);
5959
} else {
6060
assert.equal(true, data.errcode === 0);
6161
assert.equal(true, data.errmsg === 'ok');

0 commit comments

Comments
 (0)