【问题标题】:Why does an HTTP request in Node.js yield the data type as well?为什么 Node.js 中的 HTTP 请求也会产生数据类型?
【发布时间】:2011-09-14 05:08:21
【问题描述】:
  req = http.request options, (res) ->
    res.on 'data', (chunk) ->
      data += chunk
      return
    res.on 'end', ->
      if res.statusCode is 200
        console.log res
        console.log data
        callback null, data
      else
        callback(new Error("Response status code: " + res.statusCode), data)
      return
    return

当我输出数据时,我得到: [object Object][["INZ", 41.878113599999999, -87.629798199999996]] 这很奇怪,因为[object Object] 之后的部分都很好。有什么想法吗?

【问题讨论】:

  • 你只是在做data += chunk,这意味着数据是在别处定义和初始化的。剩下的代码在哪里?
  • 这使用CoffeeScript 所以data 在这个特定范围的开头被初始化
  • 是的,但它在第一次初始化时是未定义的,并且你唯一一次设置它是使用+=,所以你正在做undefined += something,这很糟糕,除非你在某处设置数据否则先。
  • 对,Brian 说的。你真的应该把data = '' 放在你的res.ons 之前。

标签: node.js coffeescript express form-post


【解决方案1】:

正如我在评论中所说,您没有定义data,所以您得到的是undefined += chunk。你可以像@Trevor Burnham 说的那样解决它:

req = http.request options, (res) ->
  data = ''
  res.on 'data', (chunk) ->
    data += chunk
    return
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-17
    • 2013-10-26
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2021-08-28
    • 2020-06-26
    • 1970-01-01
    相关资源
    最近更新 更多