Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hàm trả về Javascript

Có, bạn chỉ cần thay đổi cách bạn nghĩ về mã. Thay vì viết email_already_exists_in_mysql thay vào đó, bạn nên viết một hàm có tên là 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();
            }
        }
    )
}

Sau đó, thay vì viết thế này:

//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
}

thay vào đó bạn viết nó như thế này:

//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
})}

Bây giờ, bạn có thể tự hỏi mình, điều gì sẽ xảy ra nếu có một cái khác sau đó? Chà, bạn cần sửa đổi if_email_already_exists_in_mysql hàm để hoạt động như và if...else thay vì chỉ và 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();
            }
        }
    )
}

để bạn có thể gọi nó như thế này:

//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
    }
)}

Bạn có thể viết mã không đồng bộ để thực hiện hầu hết mọi thứ mà mã thông thường chỉ có thể làm thay vì trả về giá trị bạn chuyển trong lệnh gọi lại. Ghi nhớ:

quay lại trong mã đồng bộ ==chuyển vào lệnh gọi lại trong mã không đồng bộ.

Do đó, cấu trúc mã phải khác nhưng như tôi đã trình bày ở trên, logic bạn muốn triển khai có thể giống hệt nhau.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ nhận các chữ số bằng regexp

  2. $ wpdb-> update hoặc $ wpdb-> chèn kết quả vào dấu gạch chéo được thêm vào trước dấu ngoặc kép

  3. PYTHON:Cập nhật MULTIPLE COLUMNS với các biến python

  4. Làm cách nào để truyền một bảng dưới dạng tham số cho MySqlCommand?

  5. Thứ tự hàng MySQL cho SELECT * FROM tên_bảng;?