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

Bagaimana modul mysql yang dijanjikan bekerja dengan NodeJS?

Jika suatu metode adalah simpul "errback" dengan satu argumen - itu akan diselesaikan tanpa parameter di then atau sebagai alternatif ditolak dengan err lulus untuk itu. Dalam hal promisifikasi, Anda dapat menangkapnya dengan .error atau gunakan tangkapan dengan Promise.OperationalError .

Berikut adalah pendekatan sederhana:

function getConnection(){
    var connection = mysql.createConnection({
      host     : 'localhost',
      user     : 'me',
      password : 'secret'
    });
    return connection.connectAsync().return(connection); // <- note the second return
}

getConnection().then(function(db){
    return db.queryAsync(....);
}).error(function(){
   // could not connect, or query error
});

Jika ini untuk mengelola koneksi - saya akan menggunakan Promise.using - berikut adalah contoh dari API:

var mysql = require("mysql");
// uncomment if necessary
// var Promise = require("bluebird");
// Promise.promisifyAll(mysql);
// Promise.promisifyAll(require("mysql/lib/Connection").prototype);
// Promise.promisifyAll(require("mysql/lib/Pool").prototype);
var pool  = mysql.createPool({
    connectionLimit: 10,
    host: 'example.org',
    user: 'bob',
    password: 'secret'
});

function getSqlConnection() {
    return pool.getConnectionAsync().disposer(function(connection) {
        try {
            connection.release();
        } catch(e) {};
    });
}

module.exports = getSqlConnection;

Yang memungkinkan Anda melakukannya:

Promise.using(getSqlConnection(), function(conn){
    // handle connection here, return a promise here, when that promise resolves
    // the connection will be automatically returned to the pool.
});



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql -- 30 hari terakhir

  2. Bagaimana cara kerja MySQL tidak sensitif dan aksen tidak sensitif di UTF-8

  3. Mengapa hasil dari kueri SQL tidak kembali dalam urutan yang saya harapkan?

  4. Bagaimana saya bisa menggunakan GABUNG dalam pernyataan UPDATE?

  5. Kesalahan startup server MySQL 'Server berhenti tanpa memperbarui file PID'