检查用户是否已经存在(Node.js和mysql)

我试图检查数据库中的用户是否也存在。 我的代码工程,如果我添加一个用户到数据库而不检查是否有人的名字存在。 当我尝试检查它时,会出现问题,因为代码可以识别用户是否存在,但如果用户不存在,则无法将用户添加到数据库中。 其中的代码是这样的(函数DB()是代码创build与数据库的连接的地方):

app.post('/Registro', function(req, res){ var conDB=DB(); var reg={ Usuario: req.body.Usuario, Contra: req.body.Contra }; console.log(req.body.Usuario+" "+req.body.Contra); var query=conDB.query('INSERT INTO Usuario SET ?',reg,function(err, res){ }); res.send("Usuario: "+req.body.Usuario+" y Contraseña: "+req.body.Contra + "REGISTRADOS"); conDB.end(); }); 

代码不起作用(我试图检查用户是否存在)是这样的:

 app.post('/Registro', function(req, res){ var conDB=DB(); var reg={ Usuario: req.body.Usuario, Contra: req.body.Contra }; var UsuarioReg=req.body.Usuario; conDB.query('SELECT * FROM Usuario WHERE Usuario = ?', UsuarioReg,function(err,rows){ if(err) return console.log(err); if (!rows.length) { conDB.query('INSERT INTO Usuario SET ?',reg,function(err, respuesta){ return respuesta.send("Usuario: "+req.body.Usuario+" y Contraseña: "+ req.body.Contra + "REGISTRADOS"); }); } else { return res.send("Este usuario ya existe"); } }); conDB.end(); }); 

如果有人知道我该如何解决这个问题,我将不胜感激!

我做了一个抛出这个exception的版本:

在这里输入图像说明

我敢打赌,在查询执行之前数据库连接正在closures。 我将conDB.end()从第一个查询移入err处理程序,并移入第二个查询的callback函数。

编辑:

 app.post('/Registro', function(req, res){ var conDB=DB(); var reg={ Usuario: req.body.Usuario, Contra: req.body.Contra }; var UsuarioReg=req.body.Usuario; var ContraReg=req.body.Contra; conDB.query('SELECT * FROM Usuario WHERE Usuario = ? and Contra= ?', [UsuarioReg,ContraReg] ,function(err,rows){ if(err) { conDB.end(); return console.log(err); } if (!rows.length) { conDB.query('INSERT INTO Usuario SET ?',reg,function(err, results){ conDB.end(); return res.send("Usuario: "+req.body.Usuario+" y Contraseña: "+ req.body.Contra + "REGISTRADOS"); }); } else { conDB.end(); return res.send("Este usuario ya existe"); } }); });