Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sails.js。检查用户是否存在_Javascript_Mysql_Node.js_Sails.js - Fatal编程技术网

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

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

大家好,我是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);
    });
}
问题是:

响应始终为“用户已存在!”,状态代码为-400

  • 如果用户使用给定的用户名或/和电子邮件存在,则不管如何都会显示上述消息,然后控制台中会记录一些内容(我不理解),并且不会像我的MySQL中那样创建用户。这两个字段是唯一的
  • **如果用户不存在**,则会在后面创建用户,但仍会显示上述消息
我只想在用户存在(即如果给定的凭据匹配)时显示消息,否则用201响应

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

函数的作用是:返回一个数组,因此需要检查数组的长度,看看是否有匹配的对象

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


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谢谢,如果解决了你的问题,你能接受答案吗:)