sql >> Database >  >> RDS >> Mysql

nodejs express/routes en mysql

Ik geloof dat je het niet-blokkerende karakter van deze oproepen niet toestaat. De variabele is ingesteld op false, de verbinding wordt aangeroepen en valt dan door in afwachting van een terugbelverzoek. U geeft onmiddellijk het antwoord, voordat het terugbellen voltooid is.

module.exports = function(app){
    app.get('/register/check/u/:username', function(req, res){
        // you set the value of the output var
        var output = 'false';
        // this is a non-blocking call to getConnection which fires the callback you pass into it, once the connection happens.  The code continues on - it doesn't wait.
        pool.getConnection(function(err, conn) {
            query = conn.query('SELECT * FROM users WHERE username LIKE ?', [req.params.username]);
            query.on('error', function(err){
                throw err;
            });
            query.on('result', function(row){
                var output = 'true';
                console.log(row.email);
                console.log(output);
            });
           conn.release();
        });

        // you are getting here before the callback is called
        res.render('register/check_username', { output: output});
    });
);

Waarom krijg je de juiste waarde in de console? Want uiteindelijk wordt de terugbel gebeld en doet wat je verwacht. Het is gewoon genoemd naar de res.render

Dit is waarschijnlijker de code die u zoekt:

module.exports = function(app){
    app.get('/register/check/u/:username', function(req, res){
        pool.getConnection(function(err, conn) {
            query = conn.query('SELECT * FROM users WHERE username LIKE ?', [req.params.username]);
            query.on('error', function(err){
                throw err;
            });
            query.on('result', function(row){
                var output = 'true';
                console.log(row.email);
                console.log(output);
                res.render('register/check_username', { output: output});
            });
           conn.release();
        });
    });
);



  1. Tabelkolommen opnieuw ordenen in Oracle

  2. Hoe maak je gematerialiseerde weergaven in SQL Server?

  3. R12.2 Online patching gereedheidsrapport

  4. Polymorfisme in SQL-databasetabellen?