关于Node开发微信公众号微信回复代码的疑问,求解答!

发布于 2022-09-12 00:29:00 字数 1613 浏览 20 评论 0

var parseString = require('xml2js').parseString;
WeChat.prototype.autoMsg = function(req, res, next) {
var buffer = [],
    that = this;

req.on('data',function(data){
    buffer.push(data);
});
req.on('end',function(){
    var msgXml = Buffer.concat(buffer).toString('utf-8');
    parseString(msgXml,{explicitArray : false},function(err,result){
        // 如果有错误直接抛出
        if(err) throw err;
        result = result.xml;

        var toUser = result.ToUserName; 
        var fromUser = result.FromUserName;

        // 判断消息类型
        if(result.MsgType === "event") {
            // 关注微信公众号
            if(result.Event === "subscribe") {
                var resultXml =  "<xml><ToUserName><![CDATA["+ fromUser +"]]></ToUserName>";
                resultXml += "<FromUserName><![CDATA["+ toUser +"]]></FromUserName>";
                resultXml += "<CreateTime>"+ new Date().getTime() +"</CreateTime>";
                resultXml += "<MsgType><![CDATA[text]]></MsgType>";
                resultXml += "<Content><![CDATA[欢迎关注,哈哈哈哈哈!]]></Content></xml>";

                res.send(resultXml);
            }
        }else {
        }
    })
})

以上是Node开发微信公众号-微信回复的部分代码
针对以上代码,我有如下不明

req.on('data',function(data){ ... }
req.on('end',function(){ ... }

其中.on我理解是绑定一个事件,dataend分别为事件名,第二个参数为此事件的回调函数
但是我没有理解,既然有这两个事件,是在哪里触发的dataend两个事件呢?
还望得到解答,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

但可醉心 2022-09-19 00:29:00

node中常用监听事件
.on('connection') 连接成功调用的事件
.on('error') 发生错误调用的事件
.on('close') 当 server 关闭的时候触发。注意,如果有连接存在,直到所有的连接结束才会触发这个事件
.on('data') 当接收到数据的时触发该事件。data 参数是一个 Buffer 或 String。数据编码由 socket.setEncoding() 设置。注意当 Socket 发送 data 事件的时候,如果没有监听者数据将会丢失。
.on('listening') 当服务被绑定后调用 server.listen()。
.on('end') 当 socket 的另一端发送一个 FIN 包的时候触发,从而结束 socket 的可读端。

穿透光 2022-09-19 00:29:00

http 请求中触发的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文