2016-05-29 19 views
0

登録する前に既にユーザーがいて、私のために働いていないかどうかを確認しようとしています 私は郵便配達でテストしても、Sailsjs:ユーザーを確認する

create: function (req, res) { 
    if (req.body.password !== req.body.confirmPassword) { 
     return res.json(401, {err: 'Password doesn\'t match, What a shame!'}); 
    } 
    User.find(req.body).exec(function(err,users){ 

      if (err) { 
      return res.negotiate(err); 
     } 
     if (users.length) { 
      res.status(400); 
      return res.json('User already exists!'); 
     } 

    }else{ 
     User.create(req.body).exec(function (err, user) { 
      if (err) { 
      return res.json(err.status, {err: err}); 
      } 
      // If user created successfuly we return user and token as response 
      if (user) { 
      // NOTE: payload is { id: user.id} 
      res.json(200, {user: user, token: jwToken.issue({id: user.id})}); 
      } 
     }); 
    } 
}); 
+0

'User.find()'はオブジェクトだけでなく、[ウォーターライン基準](https://github.com/balderdashy/waterline-docs/blob/master/queries/query-language.md)をとります。 – Claies

+0

@Claies 'User.find({email:params.email})'を試していますが、動作しません – nevergiveup

+0

なぜreq.bodyからparamsに変更しましたか?あなたの作成関数は 'params'プロパティを持っていません。 – Claies

答えて

0

にこのライン

User.find(req.body).exec(function(err,users){}); 

でコードを編集してみてください。 - そうは存在していない基準を見つけるあなたが使用しているため

User.findOne({email:params.email}).exec(function(err,user){ 
    if(user){ 
    /** 
    *user exists ! 
    */ 
    }else{ 
    /** 
    *create new user 
    */ 
    } 

}

それは nullを返し、eveで新しいユーザーを作成しますRYあなたはユニークユーザー名を持つユーザーを有し、および/またはあなたがこのようにモデルのattribute definitionuniqueタイプを使用することができます電子メールで送信したい場合は、時間

+0

が動作しません – nevergiveup

0

attributes: { 
    username: { 
    type: 'string', 
    unique: true 
    } 
} 

その後、あなたのコントローラのメソッドは次のようになります。

create: function (req, res) { 
    if (req.body.password !== req.body.confirmPassword) { 
     return res.json(401, {err: 'Password doesn\'t match, What a shame!'}); 
    } 
    User.create(req.body, function (err, user) { 
     if (err) { 
     return res.negotiate(err); // validation error will be automatically passed there 
     } 
     res.json(200, {user: user, token: jwToken.issue({id: user.id})}); 
    }); 
}); 
関連する問題