如何使用Coffeescript获取JSON输出?

时间:2017-06-29 14:00:35

标签: json coffeescript slack-api hubot

我将Hubot与elasticsearch和slack集成在一起。 当我们查询API时,我们在使用postman时会以JSON格式获取输出。

当我们用coffeescript查询松弛时,我们得到了简单的输出。 这是代码

showHealth = (msg) ->
      msg.send("Getting the health for the cluster: ")
      msg.http("http://show-acc.com/_cluster/health/")
        .get() (err, res, body) ->
          lines = body.split("\n")
          header = lines.shift()
          list = [header].concat(lines.sort().reverse()).join("\n")
          msg.send("/code \n ```#{list}```")

这是在松弛时打印我的简单输出。 你能不能请任何人帮助我如何更改代码以将输出打印为JSON格式?

1 个答案:

答案 0 :(得分:0)

我相信您需要指定"mrkdwn": true,这将允许您使用反引号代码块。但是,IMO实现格式化消息的最好方法是使用附件,其结构是具有散列属性的数组......

我使用robot.messageRoom而不是msg.send获得更多里程,如下所示:

# Create attachment
msg = {
  attachments: [
    {
      fallback: 'Getting the health for the cluster: http://show-acc.com/_cluster/health/'
      title: 'Getting the health for the cluster:'
      title_link: 'http://show-acc.com/_cluster/health/'
      text: '/code \n ```#{list}```'
      mrkdwn_in: ['text']
    }
  ]
}
# Assign channel
channel = process.env.NOTIFY_ROOM

# Send it!
robot.messageRoom channel, msg

有关详细信息,请参阅以下参考资料: