sql >> Databáze >  >> RDS >> Mysql

Přístup k více dotazům MySQL pomocí Node.js

Člověk by se měl vyhnout pyramidě zkázy:

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

Tento příklad ukazuje výsledek, který závisí na 2 nezávislých vypočtených hodnotách. Každá z těchto hodnot je dotazována v doQuery1 a doQuery2. Provádějí se postupně, ale asynchronně.

Dále můžete vidět Q.all(... které v podstatě nazývají „pak“ zpětné volání o úspěchu. V rámci tohoto zpětného volání se provede výpočet.

Používání slibů (podrobnosti:Github Q:slib pro Javascript a wikipedie ) umožňují čistší kód, samostatné výpočty a zpracování výsledků a pohyb věcí.

Podívejte se, jak snadné by bylo přidat „doQuery3“ jako předpoklad pro váš výpočet!

A pod „package.json“ patřící k ukázkovému kódu:

{
    "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. Jak zabráníte vkládání SQL v aplikacích LAMP?

  2. Maximální délka názvu tabulky v MySQL

  3. Práce s vytvářením indexů pomocí MongoEngine v Pythonu

  4. Příklady COS() v SQL Server