mongodb - Check for existing user doesn't go along -
as waterline's unique
attribute is ignored mongodb, take decision make check existing model entry in code:
var username = req.param('username'); var email = req.param('email'); var asd = ""; // check if user exists user.findone({username: username}, function (err, user) { asd = "invalid username"; console.log(asd); if(err){ return res.servererror('error creating user' + err); } if(user){ asd = "invalid username"; console.log(asd); return res.json({status: "invalid_username"}); } }); user.findone({email: email}, function (err, user) { asd = "invalid email"; console.log(asd); if(err){ return res.servererror('error creating user' + err); } if(user){ asd = "invalid email"; console.log(asd); res.json({status: "invalid_email"}); } }); // create user user.create({.....});
nevertheless, never in findone
methods, though user provided credentials exist in database. tried debugging, , don't in statement. put asd
variable, check if smth happens, unsuccessfully. , user keeps being created again , again, same credentials.
any thoughts on missing?
you need put create inside callback
user.findone(...).exec( function(err,user){ if(!user) user.create(...) });
but others have commented there might not need workaround. in issue linked, explain happens
migrate: safe
set either config/models.js or chosen in command line interface. set else. enough set once, run sails lift, , change safe if prefer
Comments
Post a Comment