我在咖啡脚本中使用简单的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。按内存编写代码,导致原始源代码现在不可用,所以这里可能会出现语法错误,但在原始代码中不考虑它们一切正常。
答案 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
如果您按照发布的方式获取数据,则可能是偶然的,或者您已经在使用此处理程序。