Mysql
 sql >> база данни >  >> RDS >> Mysql

Функция за връщане на Javascript

Да, така е, просто трябва да промените начина, по който мислите за кода. Вместо да пишете email_already_exists_in_mysql вместо това трябва да напишете функция, наречена if_email_already_exists_in_mysql :

/* Executes callback if email
 * already exists in mysql:
 */
function if_email_already_exists_in_mysql (email,callback) {
    connection.query(
        'SELECT COUNT(*) AS nb FROM user WHERE emailUser = ' +
        connection.escape(email),

        function(err, rows, fields) {
            if(rows[0].nb != 0) {
                callback();
            }
        }
    )
}

Тогава вместо да пишете това:

//If the email hasn't a good format
if(email_not_good_format()) {
    //I do something
}
else if(email_already_exists_in_mysql(email)) {
    //I do something
}

вместо това го пишете така:

//If the email hasn't a good format
if(email_not_good_format()) {
    //I do something
}
else {if_email_already_exists_in_mysql(email),function(){
    //I do something
})}

Сега, може да се запитате, ами ако има още един след това? Е, трябва да промените if_email_already_exists_in_mysql функция да се държи като и if...else вместо just и if :

function if_email_already_exists_in_mysql (email,callback,else_callback) {
    connection.query(
        'SELECT COUNT(*) AS nb FROM user WHERE emailUser = ' +
        connection.escape(email),

        function(err, rows, fields) {
            if(rows[0].nb != 0) {
                callback();
            }
            else if(else_callback) {
                else_callback();
            }
        }
    )
}

за да можете да го наречете така:

//If the email hasn't a good format
if(email_not_good_format()) {
    //I do something
}
else {
    if_email_already_exists_in_mysql(email),function(){
        //I do something
    },
    // else
    function(){
        //I do something else
    }
)}

Можете да напишете асинхронен код, за да правите почти всичко, което обикновеният код може да направи, вместо да връща стойност, която предавате в обратно извикване. Запомнете:

връщане в синхронен код ==предаване на обратни извиквания в асинхронен код.

Следователно структурата на кода трябва да е различна, но както демонстрирах по-горе, логиката, която искате да приложите, може да бъде абсолютно същата.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PERIOD_DIFF() Примери – MySQL

  2. Как да намеря всички низове с главни букви в MySQL таблица?

  3. PHP- вмъкване на двоични данни в mysql с помощта на подготвени оператори

  4. Изявление на SQL CASE

  5. PHP PDO bindParam за променлива/низ, използван за IN израз...?