source

데이터베이스 Javascript와의 동기화 문제

manysource 2023. 8. 28. 21:13

데이터베이스 Javascript와의 동기화 문제

코드 동기화 문제가 발생했습니다.그래서 이메일이 고유한지 확인하는 기능은 DB에 대한 쿼리에서 루프보다 빠르게 값을 반환하는 것입니다.실제로 DB의 코드는 마지막으로 끝납니다.

async function isEmalUsed(email)
{
var isUsed = true;
isUsed = await conn.query("SELECT Email FROM Users", (err, rows, meta) => {
    if (err) throw err;
    
   
        for (let i = 0; i < rows.length; i++) {
       
            if (rows[i].Email == email) {
                console.log(rows[i].Email)
                
                return false;
            }
        }
        return true;
    
     
 });


return isUsed;
}

게시 방법:

server.post('/register', async (req, res) => {

 if (session.UserID != null)
{
     res.redirect('/');
    }

let usedEmail = false;
const username = req.body.login;
var haslo = req.body.password;
const email = req.body.email;
var gender = req.body.gender;
var date = req.body.date;
var emailUsage=false;
let flag = false;

flag = await isEmalUsed(email);
console.log(flag);
if (!flag) {
    haslo = await hashPassword(haslo);
    conn.query("INSERT INTO Users (UserName,Password,Email, BirthdayDate, Gender) VALUES(?, ?, ?, ?, ?)", [username, haslo, email, date, gender], (err, res) => {
        if (err) throw err;
        else { req.flash('success', "you've been registered!") };
    })
    res.redirect('/');
}
else {

    req.flash('error', 'this email is taken');
    res.redirect('/');
}


   
});

언급URL : https://stackoverflow.com/questions/65293824/problem-with-synchrozation-with-database-javascript