TypeError: Cannot read property 'call' of undefined

'use strict'

var sha1 = require('sha1')
var getRawBody = require('raw-body')
var Wechat = require('./wechat')
var util = require('./util')

module.exports = function(opts,handler){
   var wechat = new Wechat(opts)

   return function *(next){
       var that = this
       var token = opts.token
       var signature = this.query.signature
       var nonce = this.query.nonce
       var timestamp = this.query.timestamp
       var echostr = this.query.echostr
       var str = [token,timestamp,nonce].sort().join('')
       var sha = sha1(str)//把str用sha1加密

       if (this.method === 'GET') {//判断是否是GET提交
           if (sha === signature) {//判断加密之后的数据是否与微信返回的一样
               this.body = echostr + ''
           } else {
               this.body = 'wrong'
           }
       } else if (this.method === 'POST') {//判断是否是POST提交
           if (sha !== signature) {//处理错误
               this.body = 'wrong'
               return false
           }

           var data = yield getRawBody(this.req,{//通过getRawBody拿到POST过来异步请求的原始XML数据
               length: this.length,
               limit: '1mb',
               encoding: this.charset
           })

           var content = yield util.paresXMLAsync(data)//解析data
           //console.log(content)

           var message = util.formatMessage(content.xml)//解析content xml格式数据
           // console.log(message)

           this.weixin = message

           yield handler.call(this, next)

           wechat.reply.call(this)
       }
   }
}

情雨隨风
浏览 1743回答 2
2回答

慕九州8384204

你好,请问下这个问题怎么解决啊

不偏不易

call未定义
打开App,查看更多内容
随时随地看视频慕课网APP