Express:res.json for Array

时间:2017-04-13 13:49:15

标签: arrays json object express http-headers

我想做以下事情:

doInBackground

到目前为止,我的回答看起来不错:

PostExecute

但是我的控制台出错:

  

错误:发送后无法设置标头。

那我该如何避免这个错误?

1 个答案:

答案 0 :(得分:1)

res.json将结束请求/响应周期,所以我不相信你可以将它放在forEach中,因为这将尝试在一个已经触发后发出响应。(这就是为什么关于标题的错误,因为它们在for循环的第一次迭代期间发送,下一次迭代尝试更改它们,这是不允许的,因为它们不再存在 - 响应已经留给客户端了)

而是尝试填充'forEach'中的对象数组。然后将其传递到循环外的响应对象中。

    var data = []
    uploads.forEach(function(object){
      data.push({
        sessionId: object.sessionId,
        fileId: object.id,
        path: `${baseUrl}/sessions/${object.sessionId}/files/${object.id}/tokens`
      });
    });
    res.json(data);