Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

modul validasi login pengguna sederhana dengan node

Saya pikir Anda ingin memikirkan kembali aplikasi Anda menjadi cara yang lebih mirip simpul (yaitu yang mengakui bahwa banyak/sebagian besar hal terjadi secara tidak sinkron, jadi Anda biasanya tidak "kembali" dari fungsi seperti ini, tetapi melakukan panggilan balik dari itu. Tidak yakin apa yang Anda rencanakan untuk dapatkan dari node-mysql, tetapi saya mungkin hanya akan menggunakan modul mysql biasa. Kode berikut kemungkinan besar masih belum sepenuhnya sesuai dengan yang Anda inginkan, tetapi mudah-mudahan akan membuat Anda memikirkannya dengan benar.

Perhatikan bahwa penggunaan 'kembali' di bawah ini sebenarnya tidak mengembalikan hasil (panggilan balik itu sendiri tidak boleh mengembalikan apa pun, dan dengan demikian seperti mengembalikan tidak terdefinisi. Pernyataan pengembalian ada di sana sehingga Anda keluar dari fungsi, yang menghemat banyak if/ blok lain.

Semoga ini bisa membantu, tetapi saya sarankan untuk melihat berbagai proyek simpul di github untuk lebih memahami sifat asinkron penulisan untuk simpul.

function validate(username, password, callback){
    var connection = mysql.createConnection({ user:'foo',
                            password: 'bar',
                            database: 'test',
                            host:'127.0.0.1'});

    connection.connect(function (err){
        if (err) return callback(new Error('Failed to connect'), null);
        // if no error, you can do things now.

        connection.query('select username,password from usertable where username=?',
                username,
                function(err,rows,fields) {
                    //  we are done with the connection at this point), so can close it
                    connection.end();

                    // here is where you process results
                    if (err)
                        return callback(new Error ('Error while performing query'), null);
                    if (rows.length !== 1)
                        return callback(new Error ('Failed to find exactly one user'), null);

                    // test the password you provided against the one in the DB.
                    // note this is terrible practice - you should not store in the
                    // passwords in the clear, obviously. You should store a hash,
                    // but this is trying to get you on the right general path

                    if (rows[0].password === password) {
                        // you would probably want a more useful callback result than 
                        // just returning the username, but again - an example
                        return callback(null, rows[0].username);
                    } else {
                        return callback(new Error ('Bad Password'), null);
                    }

                });


    });
};



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pilih judul relevansi berdasarkan tag yang mirip dengan mysql

  2. Tidak semua parameter digunakan dalam pernyataan SQL (Python, MySQL)

  3. Upaya tidak valid untuk mengakses bidang sebelum memanggil read()

  4. MySQL Tampilkan Kamus Data tabel

  5. Kamera Android untuk mengambil banyak foto