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

Pendekatan ke beberapa kueri MySQL dengan Node.js

Seseorang harus menghindari piramida malapetaka:

var express = require('express');
var Q = require('Q');
var app = express();

app.get('/',function(req,res){
    var mysql      = require('mysql');

    var connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : ''
    });

    connection.connect();

    function doQuery1(){
        var defered = Q.defer();
        connection.query('SELECT 1 AS solution',defered.makeNodeResolver());
        return defered.promise;
    }

    function doQuery2(){
        var defered = Q.defer();
        connection.query('SELECT 2 AS solution',defered.makeNodeResolver());
        return defered.promise;
    }

    Q.all([doQuery1(),doQuery2()]).then(function(results){
        res.send(JSON.stringify(results[0][0][0].solution+results[1][0][0].solution));
        // Hint : your third query would go here
    });

    connection.end();

});

app.listen(80);
console.log('Listening on port 80');

Contoh ini menunjukkan hasil yang bergantung pada 2 nilai yang dihitung secara independen. Masing-masing nilai ini dikueri di doQuery1 dan doQuery2. Mereka dieksekusi secara berurutan, tetapi tidak sinkron.

Selanjutnya Anda dapat melihat Q.all(... yang pada dasarnya menyebut panggilan balik "lalu" untuk sukses. Dalam panggilan balik itu, perhitungan selesai.

Menggunakan janji (detail :Github Q:janji untuk Javascript dan wikipedia ) memungkinkan untuk membuat kode Anda lebih bersih, memisahkan perhitungan dan penanganan hasil, serta memindahkan berbagai hal.

Lihatlah betapa mudahnya menambahkan "doQuery3" sebagai prasyarat untuk perhitungan Anda!

Dan di bawah "package.json" yang termasuk kode sampel:

{
    "name": "hello-world",
    "description": "hello world test app",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
        "express": "3.2.0",
        "q": "0.9.3",
        "mysql":"2.0.0-alpha7"
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kedalaman dalam MYSQL dan Pohon Tabel Penutupan

  2. Data pegas JPA hanya satu kunci komposit yang merupakan masalah yang bertambah secara otomatis

  3. Pembuat kueri tidak memasukkan stempel waktu

  4. Apa cara terbaik untuk menyisipkan banyak baris di PHP PDO MYSQL?

  5. Bagaimana cara membuat Django bekerja dengan driver MySQL yang tidak didukung seperti gevent-mysql atau driver MySQL Concurrence?