使用node.js和mysql进行简单的注册/登录

时间:2018-05-15 11:43:32

标签: javascript node.js express

我试图为学校项目进行简单的注册/登录,但我真的不知道如何检查用户是否已经存在于数据库中并将响应发送回客户端并通知用户他正在尝试的用户名已经使用了,这是我正在使用的代码

function confirm(username, email, password, callback) {
    var post = { username: username, email: email, password: password };
    var params = [post.username, post.email];
    var queryTest = global.connect.con.query('SELECT username, email FROM Utilizador WHERE username = ? AND email = ?', params, function(err, rows, fields) {
        console.log(rows);
        if (!err) {
            if (rows != "") {
                console.log("user already exists");
            }
            else {
                var query = global.connect.con.query('INSERT INTO Utilizador SET ?', post, function(err, rows, fields) {
                    console.log(query.sql);
                    if (!err) {
                        console.log("Number of records inserted: " + rows.affectedRows);
                    }
                    else
                        console.log('Error while performing Query.', err);
                });
            }
        }
    });
}

而不是“console.log(”用户已存在“);”我想发送一个警告说同样的事情,但如果我使用警报它不起作用。显然这不是我使用的唯一代码,但我不确定我需要在这里发布什么才能让任何人理解我的问题所以如果有必要我可以发布其余的。

1 个答案:

答案 0 :(得分:1)

(假设这里的代码在NodeJS中)

此处的代码位于NodeJS中,并且在浏览器中的窗口对象上定义了警报。这就是当您尝试使用alert运行此错误时出现错误的原因。

要做的是,您可以从您的节点API发送自定义响应,然后在客户端上使用它来显示警报。

示例(假设您使用快递) -

来自您的API的

resp.send('DUPLICATE')向客户发出此用户已存在的信号。

然后,在浏览器中 -

if (resp.body.status === 'DUPLICATE') { alert("This name already exists")}