Mysql
 sql >> база данни >  >> RDS >> Mysql

Подход към множество MySQL заявки с Node.js

Човек трябва да избягва пирамидата на гибелта:

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

Тази проба показва резултат, който зависи от 2 независими изчислени стойности. Всяка от тези стойности е заявена в doQuery1 и doQuery2. Те се изпълняват последователно, но асинхронно.

След това можете да видите Q.all(... които основно наричат ​​обратното извикване "тогава" при успех. В рамките на това обратно извикване се извършва изчислението.

Използване на обещания (подробности :Github Q:обещание за Javascript и wikipedia ) позволяват да направите кода си по-чист, да отделите изчисленията и обработката на резултатите и да преместите нещата наоколо.

Вижте колко лесно би било да добавите "doQuery3" като предпоставка за вашето изчисление!

И по-долу „package.json“, принадлежащ към примерния код:

{
    "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. SQL ORDER BY с помощта на подготвени оператори

  2. Трябва ли да използвам mysql persistent connect?

  3. четене на BLOB изображение от MySQL база данни

  4. STR_TO_DATE() Примери – MySQL

  5. Пишете с главна буква. MySQL