2017-01-29 8 views
0

ユーザーアカウントの管理に外部コードを使用するためにミドルウェアを作成しました。私は新しいアカウントをクレアチンだとき、私は次のコードごとにマネージャの関連機能を使用します。コールバック関数でエラーをキャッチ

.post(function(req,res,next){ 
     UsersManager.createUser(req.body.username,req.body.password,function(err){ 
      if(err){ 
       res.json({ 
        success: false, 
        message: 'User NOT created', 
       });    
      }else{ 
       res.json({ 
        success: true, 
        message: 'User '+req.body.username+' created', 
       }); 
      } 
     }); 
    }); 

しかし、私は、たとえば、ユーザーが既に存在する場合には、エラーをキャッチすることはできませんよ。マイUsersManager.createUser次のコードされています

createUser: function(username,password,callback){ 
     var new_user = new User({ 
      username: username, 
      password: password 
     }); 
     User.findOne({username:username},function(err,user){ 
      if(!user) new_user.save(callback); 
      else throw err; 
     }); 

    } 

エラーは次のとおりです。

Error: Uncaught, unspecified "error" event. (null)

私は、コールバックによってcatchedするために、最後の行else throw errを処理する方法は?ユーザー管理を処理するためにコードの構造についてどう思いますか?

答えて

0

Iは、以下のコードを使用することによって解決:

createUser: function(username,password,callback){ 
     var new_user = new User({ 
      username: username, 
      password: password 
     }); 
     User.findOne({username:username},function(err,user){ 
      if(!user) new_user.save(callback); 
      else{ 
       var err = 1; 
       callback(err); 
      } 
     }); 

    } 
関連する問題