gpt4 book ai didi

javascript - Sails.js。检查用户是否存在

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:31 25 4
gpt4 key购买 nike

大家好,我是 Sails.js 的新手(使用 MySQL)我正在尝试查找用户在注册之前是否已经存在。

这是代码:

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);
});
}

问题是:

The response is always "User already exists!" with status code - 400

  • 如果用户存在并具有给定的用户名或/和电子邮件,无论如何都会显示以上消息,然后控制台中会记录一些内容(我不明白)并且不会创建用户我的 MySQL 这两个字段是唯一的。
  • **如果用户不存在**用户会在后面创建,但仍然显示上述消息。

I want to display the message only if user exists (ie if given credentials matches) else respond with 201

最佳答案

register:function(req, res, next){
var params = req.params.all();

User.find({
or : [
{ usrnm:params.usrname },
{ eml:params.eml }
]
})
.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(params, function(err, user){
if(err){
return next(err);
} else {
res.status(201);
res.json(user);
}
});
}
});
}

如果具有这些参数的用户尚不存在,则应调用创建用户方法,因此应将其放入回调中。

User.find() 函数返回一个数组,因此您需要检查它的长度以查看是否有任何匹配的对象。

关于javascript - Sails.js。检查用户是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36362069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com