2017-06-16 7 views
0

私は、ユーザーがスレッドを投稿することができるWebアプリケーションを開発しています。これは、スレッドをスレッドコレクションに保存する方法と、スレッドコレクションをユーザーコレクションに保存する方法の2つのステップです。Express.jsで応答を送信した後に何かするには?

しかし、スレッドコレクションに保存した後、すぐに他の保存処理が完了するのを待たずに応答を送信したいと考えています。

他のタスクキューの種類のlibsを使用せずにexpress.jsまたはノード自体を使用することでこれに対する推奨解決策はありますか?

イベントをトリガーして応答を送信できますか?要求が既に実行されているかどうかに関係なく、イベントリスナーは実行され続けますか?

おかげ

答えて

3

あなたは、スレッドの作成後およびスレッドIDのためのユーザデータを更新する前に応答を送信することができます。

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

コレクションを通すためにそれを保存する前にスレッドIDを作成します。

以下は同じのためにsudoのコードです。 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(); 
} 
関連する問題