在CoffeeScript中收到JSON响应中的意外值

时间:2013-12-24 08:01:15

标签: json coffeescript

我在咖啡脚本中使用简单的http客户端。它应该向使用JSON响应的服务器发送请求,我这样做并尝试解析响应,但得到奇怪的结果:

http = require 'http'

http.get { host: 'myurl' }, (res) ->
    data = ''
    res.on 'data', (chunk) ->
        data += chunk
        log 'Body: ' + chunk
    log 'Data: ' + data

服务器的实际结果如下所示:

config{
    username: login,
    password: password
}

但我得到了这样的结果:

Body: config{username:login,password: password}
Data: config{username:login,password: password}:unexpected

当我尝试用JSON解析数据并使用它时,我收到一个错误,我想这是因为我得到令牌':enexpected'。为什么会出现在这里?

P.S。按内存编写代码,导致原始源代码现在不可用,所以这里可能会出现语法错误,但在原始代码中不考虑它们一切正常。

1 个答案:

答案 0 :(得分:0)

不太确定这是否是一个相关问题,但您正在尝试立即打印数据,而不等待请求完成。你应该做的是等待end事件:

http.get { host: 'myurl' }, (res) ->
  data = ''
  res.on 'data', (chunk) ->
    data += chunk
    log 'Body: ' + chunk
  # request might - and might not - be finished yet
  # log 'Data: ' + data
  res.on 'end', ->
    # request is certainly done
    log 'Complete: ' + data

如果您按照发布的方式获取数据,则可能是偶然的,或者您已经在使用此处理程序。