Tulis ini dalam middleware:
wechat.reply.call(this);
Tulis fungsi balasan dalam wechat seperti ini:
Wechat.prototype.reply = function(){
console.log('bbbbb');
var content = this.body;
var message = this.weixin;
var xml = util.tpl(content,message)
console.log(xml);
this.status = 200
this.type = 'application/xml'
this.body = xml
return
}
Kemudian ia melaporkan ralat
TypeError: Cannot read property 'call' of undefined
at Object.<anonymous> (C:\www\koa\wechat\wechat\g.js:54:16)
at Generator.next (<anonymous>)
at onFulfilled (C:\www\koa\wechat\node_modules\co\index.js:65:19)
at process._tickCallback (internal/process/next_tick.js:109:7)
Sebenarnya, bukankah fungsi panggilan tersedia dalam js asli Mengapa saya mendapat ralat semasa saya memanggilnya?
Selain itu, selepas mencari di Baidu, terdapat sangat sedikit orang yang mengalami ralat ini...
Tanya tuan: Bilakah ralat ini biasanya berlaku? Apakah sebab kesilapan itu?
Sebagai contoh
a.call(this,null)
,但是此时a
是undefined
, ralat yang anda hadapi akan dilaporkanAdakah anda pasti ada kaedah wechat.apply
Instance wechat sepatutnya tiada nilai, sila cetak sebelum membuat panggilan.
Jika
x.call
中x
未定义,则其下的.call
无法访问,所以你先确定一下wechat.reply
telah ditakrifkan.Selain itu, ambil perhatian bahawa dalam JS, nama pembolehubah adalah sensitif huruf besar-besaran.