robot.router和robot.http有什么区别?



我继承了一个coffeescript hubot应用程序。在自述文件和教程之外,我找不到论坛或我的问题的任何其他答案,所以我在这里问。

我已经用谷歌搜索了这个问题,但找不到答案。

robot.router和robot.http有什么区别?两者都似乎需要获取,放置,删除等和一个URL。我的应用程序同时使用两者,但在我看来,我无法分辨出区别。

看起来路由器正在运行快速,而http是土生土长的东西。这会对客户端产生语义差异吗?

我也很难找到好的文档,但设法从 Hubot 脚本文档中获得了一些见解。如果您在页面上搜索"robot.router"和"robot.http",您会遇到以下定义:

机器人.http

这是为了对其他Web服务进行HTTP调用(类似于jQuery AJAX或Axios)

Hubot可以代表您进行HTTP调用,以集成和使用第三方API。这可以通过 robot.http 上提供的 node-scoped-http-client 实例来实现。最简单的情况如下所示:

robot.http("https://midnight-train")   
.get() (err, res, body) ->
# your code here

机器人路由器

这是一个快速服务器。它是一个HTTP侦听器,用于接受和响应HTTP请求

Hubot 包括对快速 Web 框架的支持,以提供 HTTP 请求。它侦听由 EXPRESS_PORT 或 PORT 环境变量指定的端口(按该顺序首选),默认为 8080。快速应用程序的实例可在robot.router上找到。可以通过指定EXPRESS_USER和EXPRESS_PASSWORD来使用用户名和密码对其进行保护。它可以通过设置EXPRESS_STATIC自动提供静态文件。

最常见的用途是为服务提供 HTTP 端点,并推送到 webhook,并让这些端点显示在聊天中。

module.exports = (robot) ->
# the expected value of :room is going to vary by adapter, it
# might be a numeric id, name, token, or some other value
robot.router.post '/hubot/chatsecrets/:room', (req, res) ->
room   = req.params.room
data   = if req.body.payload? then JSON.parse req.body.payload else req.body
secret = data.secret
robot.messageRoom room, "I have a secret: #{secret}"
res.send 'OK'

最新更新