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

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -