Javascript Sails.js。检查用户是否存在
大家好,我是Sails.js的新手(使用MySQL) 我正在尝试查找用户在注册之前是否已经存在 以下是代码:Javascript Sails.js。检查用户是否存在,javascript,mysql,node.js,sails.js,Javascript,Mysql,Node.js,Sails.js,大家好,我是Sails.js的新手(使用MySQL) 我正在尝试查找用户在注册之前是否已经存在 以下是代码: register:function(req, res, next){ var params = req.params.all(); User.find({ or : [ { usrnm:params.usrname }, { eml:params.eml } ] }) .ex
register:function(req, res, next){
var params = req.params.all();
User.find({
or : [
{ usrnm:params.usrname },
{ eml:params.eml }
]
})
.exec(function (err, user){
if (err) {
return res.negotiate(err);
}
if (user) {
res.status(400);
return res.json('User already exists!');
}
});
User.create(params, function(err, user){
if(err){
return next(err);
}
res.status(201);
res.json(user);
});
}
问题是:
响应始终为“用户已存在!”,状态代码为-400
- 如果用户使用给定的用户名或/和电子邮件存在,则不管如何都会显示上述消息,然后控制台中会记录一些内容(我不理解),并且不会像我的MySQL中那样创建用户。这两个字段是唯一的
- **如果用户不存在**,则会在后面创建用户,但仍会显示上述消息
User.find()函数返回一个数组,因此您需要检查它的长度,看看是否有匹配的对象。好了,伙计们,我想出了一个解决方案,我会把它放在这里,以防它对某人有所帮助
if (user) { // will be true even if user = []
res.status(400);
return res.json('User already exists!');
}
如果在数据库中找不到用户,user为=[],这意味着[]!=错误
,因此会显示范围内的消息。好了,伙计们,我想出了一个解决方案,我会把它放在这里,以防它对某人有所帮助
if (user) { // will be true even if user = []
res.status(400);
return res.json('User already exists!');
}
如果在数据库中找不到用户,user为=[],这意味着[]!=错误
,因此将显示范围内的消息。看起来您正在创建用户,即使用户确实存在,您需要在检查用户是否存在后将其放在else块中。下面是代码…尝试将创建部分放在“else”中,但问题仍然存在。是否尝试了下面的代码?你能用你的新代码更新吗?我尝试了下面的确切代码,但它不起作用看起来你正在创建用户,即使他们确实存在,你需要在检查用户是否存在后将其放在else块下面的代码现在在下面…试着将创建部分放在“else”中,但问题仍然存在。你尝试了下面的代码吗?你能用你的新代码更新吗?我尝试了下面的确切代码,但它不起作用。没有创建新用户,仍然收到相同的消息,但这次没有收到任何日志。你是否收到“用户存在”消息,即使用户不存在?是的,确实收到消息regardlessthanks,如果解决了你的问题,你能接受答案吗:)不,新用户没有被创建,仍然得到相同的消息,但这次没有得到任何日志。即使用户不存在,你也得到了“用户存在”消息吗?是的,我得到了消息Regardless谢谢,如果解决了你的问题,你能接受答案吗:)