2014-03-04 161 views
0

我试图让使用CoffeeScript的GET请求,但它甚至没有让我的URL的请求:Hubot和Django开发服务器

module.exports = (robot) -> 
    robot.respond /foo (.*) bar (.*) foobar (.*) /i, (msg) -> 
    foo = msg.match[1] 
    bar = msg.match[2] 
    foobar = msg.match[3] 
    robot.http("http://localhost:8000/a/") 
     .query({ 
     'foo': foo 
     'bar': bar 
     'foobar': foobar 
     }) 
     .get() (err, res, body) -> 
     json = JSON.parse(body) 
     msg.send(json) 

当我做我的浏览器相同的请求,它的工作原理:

http://localhost:8000/a/?foo=1&bar=2&foobar=3 

我试图运行hubot作为

hubot 1 bar 2 foobar 3 

回答

2

你的CoffeeScript语法是有点过。你在你的get调用结构是这样的:

f() x 

,当你希望它是这样的:

f x 

这一部分:

.get() (err, res, body) -> 
    json = JSON.parse(body) 
    msg.send(json) 

将调用get不带任何参数和然后以(err, res, body) -> ...作为参数,将任何get返回作为函数调用。大概要回调传递给get作为参数:

.get (err, res, body) -> 
    json = JSON.parse(body) 
    msg.send(json) 
+0

感谢,但它仍然是不打我的本地URL – user3218088

+0

你确定它甚至是匹配您的正则表达式,并进入你的处理器? –

+0

它在浏览器中工作,但不是从这里,我相信只有我的hubot脚本中缺少某些东西。 – user3218088