在node.js中如何用json对象数组发送响应?

我想使用pivotal-node模块为node.js返回已完成关键故事的数组。在node.js中如何用json对象数组发送响应?

app.get('/delivered_stories', function(request, response) {    

pivotal.useToken("my_token");

pivotal.getProjects(function (err, data) {

var project_ids = data.project.map(function(x) { return parseInt(x.id); });

console.log('Retrived project ids: '.blue + project_ids);

project_ids.forEach(function(id) {

pivotal.getStories(id, { filter: "state:finished" }, function(err, story) {

response.send(story);

});

});

response.end(); // End the JSON array and response.

});

});

我在做什么错了?以及如何解决它?我得到一个错误:

http.js:708 

throw new Error('Can\'t set headers after they are sent.');

^

Error: Can't set headers after they are sent.

整个代码:https://gist.github.com/regedarek/30b2f35e92a7f98f4e20

回答:

pivotal.getStories()是异步。

其回调(因此response.send())将后运行一段时间您的代码(包括response.end()

事实上,你不应该叫response.end()在所有的休息; response.send()是为你做的。

您也不能多次拨打response.send();您需要将所有结果合并到一个数组中并发送。
这并不简单;考虑使用async.js或承诺。

以上是 在node.js中如何用json对象数组发送响应? 的全部内容, 来源链接: utcz.com/qa/263377.html

回到顶部