我继承了coffeescript hubot应用程序。我无法在自述文件和教程之外找到论坛或任何其他问题的答案,所以我在这里问。
我搜索了这个问题但无法找到答案。
robot.router和robot.http有什么区别?两者似乎都采取获取,放置,删除等URL和URL。我的应用程序使用了两者,但在我看来,我无法区分它们。
看起来路由器正在运行express而http是本土的东西。这是否会对客户产生语义差异?
答案 0 :(得分:1)
我也很难找到好的文档,但设法从Hubot Scripting doc获得了一些见解。如果您在页面中搜索" robot.router"和" robot.http"你会遇到以下定义:
这是为了对其他网络服务进行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
这是Express服务器。它是用于接受和响应HTTP请求的HTTP侦听器
Hubot包括对快速Web框架的支持,以提供HTTP请求。它侦听由EXPRESS_PORT或PORT环境变量指定的端口(按此顺序首选),默认为8080.在robot.router中可以使用快速应用程序的实例。可以通过指定EXPRESS_USER和EXPRESS_PASSWORD使用用户名和密码进行保护。它可以通过设置EXPRESS_STATIC来自动提供静态文件。
最常见的用途是为带有webhooks的服务提供HTTP端点,并将其显示在聊天中。
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'