Nodejs:在res.send之后执行其他操作

时间:2015-10-13 09:24:41

标签: node.js responsiveness

我正在使用Node作为网络服务器,我想将每个请求都记录到数据库中。我还希望用户尽快收到回复,所以我想出了这段代码:

// ... putting together the response_data
res.send(response_data);
// ... now log the request into the DB and maybe do additional stuff

它有效,我喜欢把一些(时间)昂贵的东西放在发送背后。但是,由于我是Node的新手,我问这是否是一种常见模式?

在Stackoverflow上我发现人们在res.send之后尝试发送额外的数据时遇到了问题 - 但我从未听过有人说“是的,这对你的响应能力来说是一个很棒的功能”所以我不确定是否有专业这个解决方案的缺陷我还没看到......

1 个答案:

答案 0 :(得分:3)

只要您不需要因“额外”内容而向用户发送任何内容,那么您的方法就可以了。

大多数人遇到的问题是在响应已经发送之后尝试向响应发送数据,例如

res.send(response_data);
// do additional stuff
res.send(additional_data); // KABOOM!