如何在Express.js中发送响应后执行某些操作?

问题描述:

我正在开发一个web应用程序,用户可以发布一个线程,其中2个步骤:一个是将线程保存到线程集合,一个是将threadID保存到用户集合。如何在Express.js中发送响应后执行某些操作?

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

是否有任何推荐的解决方案,通过使用express.js或节点本身而不使用其他任务队列排序的库?

我可以只触发一个事件,然后发送响应?无论请求是否已经完成,事件侦听器是否会继续运行?

感谢

您可以将创建线程后和线程ID的用户数据更新前的响应。

下面是相同的须藤代码:

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

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

const uuidV1 = require('uuid/v1'); 
... 
function saveThread(req,res){ 
     const threadId=uuidV1(); // -> 6c84fb90-12c4-11e1-840d-7b25c5ee775a 
     let thread=req.body; 
     thread.id=threadId; 
     saveThread(); 
     //return response (res.status(200).json(newThreadObject)) 
     saveThreadId(); 
}