我试图调试现有的Hubot脚本,并在将来编写自己的脚本,并且我需要一种简单的方法来调试它或至少在某处(但不是通道)打印值。我该怎么做?在Hubot脚本中调试/打印
如果在一些交互式本地模式下仅使用Node就可以实现奖励点。我真的不知道从哪里开始。
Hubot使用的所有脚本都是用Coffeescript编写的。
P.S.我正在和Hipchat一起使用Hubot。
我试图调试现有的Hubot脚本,并在将来编写自己的脚本,并且我需要一种简单的方法来调试它或至少在某处(但不是通道)打印值。我该怎么做?在Hubot脚本中调试/打印
如果在一些交互式本地模式下仅使用Node就可以实现奖励点。我真的不知道从哪里开始。
Hubot使用的所有脚本都是用Coffeescript编写的。
P.S.我正在和Hipchat一起使用Hubot。
我自己发现了答案:console.log MSG
.coffee Coffeescript源代码正是我所需要的。
我不知道这是否有帮助,但我找到了一种方法来检查对象。
Util = require "util"
module.exports = (robot) ->
robot.hear /hi robot/i, (msg) ->
user = robot.brain.usersForFuzzyName(msg.message.user.name)
msg.send "#{Util.inspect(user)}"
这使得可以看到该对象的所有元素,所以我可以找出我做错了......
@radixhound所以''msg.send“foo”'在你通过类似'bin/hubot'的东西启动Hubot后打印到控制台?在此之前初始化Hubot的步骤是什么?谢谢! – mecampbellsoup
是的,我通过'bin/hubot'启动Hubot,并将输出放入回应中。基本上从命令行启动hubot并说'hi robot'并输出信息。可能更好地做一些事情,而不是像“向我展示用户”那样。 – radixhound
您可以使用
robot.logger.info "your log message here"
这将只是其记录像其他的hubot消息被记录一样。
找到这个(coffeescript)片段的地方记录所有错误,相当有助于添加到机器人的发展。
robot.error (err, res) -> robot.logger.error "#{err}\n#{err.stack}" if res? res.reply "#{err}\n#{err.stack}"
您还可以运行留下了'-a'选项,这将让你测试和调试脚本本地REPL。 –
@Artem你在本地运行什么命令来让hubot启动和一切?我也想在这里调试一个脚本:) – mecampbellsoup