1

指定されたデータから新しいユーザーを作成する非常に基本的なPOSTルートがあります。

これが私がそれを保存する方法です:

app.post('/create', function(req, res){
    var firstUser = new models.User(req.body);
    firstUser.save();
});

私のMongooseUserスキーマには、機能するいくつかの検証オプションがあります。間違ったデータを渡すと、検証が失敗し、ユーザーが作成されません。

しかし、問題があります。Mongooseのsave()関数は非同期です。では、検証が失敗したクライアントをどのように許可すればよいでしょうか。

それまでにpost関数は実行されます。

4

1 に答える 1

6

マングースのドキュメントをご覧ください。saveメソッドは非同期であるため、パラメーターとしてコールバックを取ります。ここでエラーをチェックする必要があります。

app.post('/create', function(req, res){
    var firstUser = new models.User(req.body);
    firstUser.save(function (err) {
        if (err) {
            res.send(500, { error: 'Saving first user failed!' });
        } else {
            res.send({ success: 'Saved!' }); 
        }
    })
});
于 2012-12-27T01:16:32.883 に答える