Coffeescript “咖啡脚本错误”;“未定义”不是一个函数;胡伯特

Coffeescript “咖啡脚本错误”;“未定义”不是一个函数;胡伯特,coffeescript,hubot,Coffeescript,Hubot,我正在调用我的django应用程序,该应用程序返回一个JSON对象,我正在使用以下代码执行此操作: robot.hear /lunch for today/i, (res) -> robot.http("http://my_ip_address/show") .header('Accept', 'application/json') .get() (err, res, body) -> data = JSON.parse

我正在调用我的django应用程序,该应用程序返回一个JSON对象,我正在使用以下代码执行此操作:

robot.hear /lunch for today/i, (res) ->
    robot.http("http://my_ip_address/show")
        .header('Accept', 'application/json')
        .get() (err, res, body) ->
            data = JSON.parse body
            res.send data.food

但它返回
ERROR-TypeError:undefined不是控制台中的函数。这有什么问题?

我猜错误在这行:

.get() (err, res, body) ->
您不是将回调作为参数传递给
get
,而是调用
get
,不带任何参数,然后尝试调用结果(未定义的
),就好像它是一个函数一样。我的咖啡脚本已经生锈了,但我想你想要这个:

.get (err, res, body) ->

它可能是安装的hubot和文档的不兼容版本,但我发现http方法中的res没有send,但是/hear命令中的res没有

robot.hear /lunch for today/i, (res) ->
    robot.http("http://my_ip_address/show")
        .header('Accept', 'application/json')
        .get() (err, msg, body) ->
            data = JSON.parse body
            res.send data.food

这应该行得通,但要么官方文档有误,要么hubot的默认安装已过时。

是这样的:

module.exports= (robot) ->
  robot.hear /lunch for today/i, (msg) ->
    robot.http("http://my_ip_address/show")
      .header('Accept', 'application/json')
      .get() (err, res, body) ->
        console.log res.statusCode
        data = JSON.parse body
        msg.send data.food

我相信它失败的原因是因为您使用了
res
来代替
msg
,然后在函数
的上下文中再次使用
res
。get()

这行代码看起来错误--.get()(err,res,body)->删除了偏执,出现了此错误:
error SyntaxError:Unexpected token u at/home/cube26/hubot/scripts/server_actions.coffee:105:5,:116:21
其中我的第105行是
data=JSON.parse body
我稍微处理了一下,发现发生未定义的错误是因为
res.send
。任何关于这可能发生的原因的线索?删除了偏执,出现了这个错误:
错误语法错误:意外的标记u位于/home/cube26/hubot/scripts/server_actions.coffee:105:5,:116:21
其中我的第105行是
data=JSON.parse body
当你试图将未定义的内容解析为JSON时,通常会得到这个结果。通过该函数进行调试,并查看err、res和body参数的返回结果。我稍微做了些修改,发现未定义的错误是由于
res.send
引起的。有关于为什么会发生这种情况的线索吗?服务器返回了什么?
err
是否有值?