在Express.js中发送回复后如何做某事?

时间:2017-06-16 09:21:42

标签: node.js express eventemitter

我正在开发一个Web应用程序,用户可以发布一个帖子,其中有两个步骤:一个是将线程保存到线程集合,一个是将threadID保存到用户集合。

但是,保存到线程集合后,我想立即发送响应,而不等待其他保存操作完成。

是否有任何建议的解决方案,使用express.js或节点本身而不使用其他任务队列排序的libs?

我可以触发一个事件然后发送回复吗?无论请求是否已经完成,事件监听器是否会继续运行?

由于

2 个答案:

答案 0 :(得分:4)

您可以在创建线程之后和threadID的用户数据更新之前发送响应。

下面是相同的sudo代码:

var express = require('express');
var app = express();
app.post('/', function(req, res, next) {
    threadCreationRequest(function(err, data) {
        res.send(data);
        userUpdateRequest();
    });
}

答案 1 :(得分:0)

在将其保存到线程集合之前创建线程ID。 您可以使用uuid或者如果您使用的是MongoDB,则可以使用mongoose创建ObjectId(或者找到另一种方法来创建唯一ID)。

$source