ユーザがフォームに入力すると、電子メールが存在するかどうかを確認する必要があります。 フォームからrequser.emailには、ユーザーemaildがフォームに入力されます。 requser.emailとデータベースを比較して一致する方法電子メールがmysqlデータベースに存在するかどうかnodejsで確認する
router.post('/signup', function(req, res, next) {
var requser = req.body.data.user;
var hash = bcrypt.hashSync(req.body.data.user.password)
var str = "";
/*email check start*/
/*email check end*/
switch (requser.role) {
case "approver":
str = 'INSERT INTO users (name, email, password,role) values("' + requser.name + '","' + requser.email + '","' + hash + '","approver")';
break;
case "user":
str = 'INSERT INTO users (name, email, password,role) values("' + requser.name + '","' + requser.email + '","' + hash + '","user")';
break;
case "admin":
str = 'INSERT INTO users (name, email, password,role) values("' + requser.name + '","' + requser.email + '","' + hash + '","admin")';
break;
}
if (!str) {
return res.json({
"status": "error",
"data": {
"redirect": "/"
}
});
}
connection.query(str, function(error, rows) {
if (error) {
console.log("error ocurred", error);
}
//console.log(rows);
res.json({
"status": error ? "error" : "success",
"data": rows || ""
})
});
});
:
Here's
UNIQUE CONSTRAINT
の例と、ここではSELECT 1
の例です。 – SLaks** ** ** [SQLインジェクションのバグ](http://bobby-tables.com/)を回避するには、[placeholder values](https://github.com)を使用してクエリ内の任意のデータをエスケープする*/mysqljs/mysql#エスケープクエリ値)。このログインシステムは誰でもあなたのサイトとデータを*何でも*することができます。 – tadman