为节点coffee中的hubot发出的GET请求指定回调



我们的本地Hubot("Sparky")运行大量插件脚本,通常运行良好。我正在编写一个插件脚本,它对Yahoo Pipes进行GET调用,并期望得到JSONP。但是,我不确定_callback参数使用什么。代码:

module.exports = (robot) ->
  robot.hear /bkeywordb/i, (msg) ->
    robot.http("http://pipes.yahoo.com/pipes/pipe.run")
      .query({
        _id: "legit-pipe-id-is-here",
        _render: "json",
        _callback: "?"
      })
      .get() (err, res, body) ->
        if body?
          data = JSON.parse(body)

这得到的错误是:

undefined:1
_({"count":10,"value":{"title":"correct title","description":"Pipes Output","lin
^
SyntaxError: Unexpected token _
  at Object.parse (native)
  at e:nodesparkyscriptsplugin-name.coffee:26:11, <js>:11:23
  at IncomingMessage.<anonymous> (e:nodesparkynode_moduleshubotnode_modulesscoped-http-clientlibindex.js:70:20)
  at IncomingMessage.EventEmitter.emit (events.js:117:20)
  at _stream_readable.js:920:16
  at process._tickCallback (node.js:415:13)

我已经验证了在使用jQuery的ajax函数时管道是否正常工作,但在这种情况下,jQuery会设置自己的回调。

我刚刚意识到我不需要使用JSONP,所以我不需要_callback参数。当你不在浏览器中时,常规JSON可以很好地工作,duh:

module.exports = (robot) ->
  robot.hear /bkeywordb/i, (msg) ->
    robot.http("http://pipes.yahoo.com/pipes/pipe.run")
      .query({
        _id: "legit-pipe-id-is-here",
        _render: "json"
      })
      .get() (err, res, body) ->
        if body?
          data = JSON.parse(body)

相关内容

  • 没有找到相关文章

最新更新