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

Tiếp cận nhiều truy vấn MySQL với Node.js

Người ta nên tránh kim tự tháp của sự diệt vong:

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');

Mẫu này hiển thị kết quả phụ thuộc vào 2 giá trị được tính toán độc lập. Mỗi giá trị trong số này được truy vấn trong doQuery1 và doQuery2. Chúng được thực thi theo trình tự, nhưng không đồng bộ.

Tiếp theo, bạn có thể thấy Q.all(... về cơ bản gọi lại "sau đó" khi thành công. Trong lần gọi lại đó, tính toán đã được thực hiện.

Sử dụng lời hứa (chi tiết: Github. Hỏi:lời hứa dành cho Javascript wikipedia ) cho phép làm cho mã của bạn sạch hơn, tính toán riêng biệt và xử lý các kết quả cũng như di chuyển mọi thứ một cách xoay vòng.

Hãy xem việc thêm "doQuery3" làm điều kiện tiên quyết cho phép tính của bạn sẽ dễ dàng như thế nào!

Và bên dưới "package.json" kéo dài đến mã mẫu:

{
    "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. Sự khác biệt giữa MySQL và MySQL2 khi xem xét NodeJS

  2. LỖI:Không thể tạo tiện ích mở rộng gốc đá quý (mysql2 trên rails 3.2.3)

  3. Cách lặp theo hàng thông qua truy vấn mysql trong php

  4. Làm thế nào để chọn một số trường nhất định trong Laravel Eloquent?

  5. Chỉ số PostgreSQL và Chỉ số InnoDB - Hiểu sự khác biệt