g 模版文中handler没有定义,求大神赐教。

来源:

spursyy

2016-06-24

this.weixin = message

yield handler.call(this, next)

wechat.reply.call(this)


ReferenceError: handler is not defined

      at Object.<anonymous> (/Users/spursy/Desktop/nodejs/wechat/wechat/g2.js:77:10)

      at next (native)

      at Object.<anonymous> (/Users/spursy/Desktop/nodejs/wechat/node_modules/koa-compose/index.js:28:12)

      at next (native)

      at onFulfilled (/Users/spursy/Desktop/nodejs/wechat/node_modules/co/index.js:65:19)

      at tryCatcher (/Users/spursy/Desktop/nodejs/wechat/node_modules/bluebird/js/release/util.js:16:23)


写回答

3回答

Scott

2016-06-24

hander 没有从外部传进来吧


module.exports = function(opts, handler) {
  var wechat = new Wechat(opts)
  return function *(next) {
    var that = this
    var token = opts.token


0
2
spursyy
Hi Scott 老师, 是由于handler 没有传进来, 我不明白最后一句是什么意思。 this.weixin = message yield handler.call(this, next) wechat.reply.call(this)
2016-06-24
共2条回复

Scott

2016-06-24

把message作为属性,挂载到 this 这个上下文环境中,后面通过 this.weixin 可以访问到这个变量;调用 handler.call 是把 handler 这个函数中的 this 设置为当前这个 this 的上下文,从而 hander 也就是 reply 里面的 this ,就是此处的this,也就能在 reply 中拿到 this.weixin 了,也可以在里面把一些内容继续挂载到 this 上,比如 this.body,wechat.reply 也是同理,wechat 的 this 也设置为当前的this上下文,于是在wechat.prototype.reply 中的this即能访问到 this.weixin,也能访问到 this.body

0
0

spursyy

提问者

2016-06-24

Hi Scott 老师,

      是由于handler 没有传进来,  我不明白最后一句是什么意思。


this.weixin = message

yield handler.call(this, next)

wechat.reply.call(this)


0
0

7天搞定Node.js微信公众号

Koa框架、ES2015新特性、MongoDB,开发微信公众号

1742 学习 · 787 问题

查看课程