Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // asta este functia care face submit la formularl de creare al contului
- function submitForm()
- {
- // check whether values are valid or not
- var xhttp = new XMLHttpRequest();
- xhttp.open("POST", "/areValuesValid");
- xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
- let username = document.getElementById("username");
- let email = document.getElementById("femail");
- let params = `username=${username.value}&femail=${email.value}`;
- alert(params);
- xhttp.send(params);
- console.log(xhttp);
- var responseJSON = JSON.parse(xhttp.responseText.toString());
- console.log(responseJSON);
- if(responseJSON.msg == 'fail')
- {
- // there is a conflict ! the form must be recompleted
- if(responseJSON.err == 'usernameTaken')
- {
- alert(`username taken! please user another username than: ${username.value}`);
- window.location.reload();
- }
- else
- {
- // there is another similar email
- alert(`email taken! please user another email than: ${email.value}`);
- window.location.reload();
- }
- }
- else
- {
- // the values are valid and cand be inserted into the database
- document.forms["createForm"].submit();
- }
- }
- // asta este partea de cod din server, care preia xmlhttp request-ul din client si il prelucreaza, astfel incat sa determine daca datele introduse din formular sunt valide sau nu (daca mai exista dubluri in baza de date mysql)
- app.post('/areValuesValid', function (req, res) {
- console.log("checking whether values are valid or not");
- console.log(req.body.username + " " + req.body.femail);
- let usernameTaken = false;
- let emailTaken = false;
- function firstQuery()
- {
- // check if username is taken
- var sql = `SELECT password FROM users WHERE username='${req.body.username}'`;
- con.query(sql, function (err, result) {
- if (!err) {
- if(result[0])
- {
- usernameTaken = true;
- return true;
- }
- else return false;
- }
- else throw err;
- });
- }
- function firstIf()
- {
- console.log("did the first if");
- if(usernameTaken == false)
- {
- // check if email is taken
- var sql = `SELECT password FROM users WHERE email='${req.body.femail}'`;
- con.query(sql, function (err, result) {
- if (err) throw err;
- console.log(result[0]);
- if(result[0])
- {
- emailTaken = true;
- console.log('email is taken');
- }
- });
- }
- return emailTaken;
- }
- var doQuery = new Promise(function(resolve, reject){
- //let decision = firstQuery();
- //console.log(decision);
- if(firstQuery())
- {
- console.log("resolved!");
- resolve();
- }
- else
- {
- console.log("rejected!");
- reject();
- }
- });
- doQuery.then(function(){
- console.log("doQuery resolved!");
- res.setHeader('Content-Type', 'application/json');
- return res.send(JSON.stringify({msg:"fail",err:"usernameTaken"}));
- }, function(){
- console.log("doQuery rejected!");
- var doFirstIf = new Promise(function(resolve, reject){
- let secondDecision = firstIf();
- if(secondDecision) resolve();
- else reject();
- });
- doFirstIf.then(function(){
- console.log("doFirstIf resolved!");
- res.setHeader('Content-Type', 'application/json');
- return res.send(JSON.stringify({msg: 'fail', err: 'emailTaken'}));
- }, function(){
- console.log("doFirstIf rejected!");
- // there are no errors, no conflicts found, success
- console.log("values are valid!");
- res.setHeader('Content-Type', 'application/json');
- return res.send(JSON.stringify({msg: 'success', err: 'null'}));
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement