我正在開發一個web應用程序,用戶可以發佈一個線程,其中2個步驟:一個是將線程保存到線程集合,一個是將threadID保存到用戶集合。如何在Express.js中發送響應後執行某些操作?
但是,在保存到線程集合後,我想立即發送響應,而不必等待其他保存操作完成。
是否有任何推薦的解決方案,通過使用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();
}