Coffeescript “咖啡脚本错误”;“未定义”不是一个函数;胡伯特
我正在调用我的django应用程序,该应用程序返回一个JSON对象,我正在使用以下代码执行此操作: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
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
是否有值?