Mysql
 sql >> Baza danych >  >> RDS >> Mysql

prosty moduł walidacji logowania użytkownika z węzłem

Myślę, że będziesz chciał przemyśleć swoją aplikację w sposób bardziej podobny do węzła (tj. taki, który rozpoznaje, że wiele/większość rzeczy dzieje się asynchronicznie, więc zwykle nie "powracasz" z funkcji takiej jak ta, ale wykonujesz wywołanie zwrotne z to.Nie jestem pewien, co planujesz uzyskać z node-mysql, ale prawdopodobnie użyłbym zwykłego modułu mysql.Poniższy kod nadal najprawdopodobniej nie jest do końca tym, czego chcesz, ale mam nadzieję, że pomyślisz o tym poprawnie.

Zauważ, że użycie 'return' poniżej tak naprawdę nie zwraca wyniku (samo wywołanie zwrotne nie powinno niczego zwracać, a zatem jest to jak zwracanie undefined. Instrukcje return są tam, więc wychodzisz z funkcji, co oszczędza wiele żmudnych, jeśli/ inne bloki.

Mam nadzieję, że to pomoże, ale sugeruję przyjrzenie się różnym projektom węzłów na github, aby lepiej wyczuć asynchroniczny charakter pisania dla węzła.

function validate(username, password, callback){
    var connection = mysql.createConnection({ user:'foo',
                            password: 'bar',
                            database: 'test',
                            host:'127.0.0.1'});

    connection.connect(function (err){
        if (err) return callback(new Error('Failed to connect'), null);
        // if no error, you can do things now.

        connection.query('select username,password from usertable where username=?',
                username,
                function(err,rows,fields) {
                    //  we are done with the connection at this point), so can close it
                    connection.end();

                    // here is where you process results
                    if (err)
                        return callback(new Error ('Error while performing query'), null);
                    if (rows.length !== 1)
                        return callback(new Error ('Failed to find exactly one user'), null);

                    // test the password you provided against the one in the DB.
                    // note this is terrible practice - you should not store in the
                    // passwords in the clear, obviously. You should store a hash,
                    // but this is trying to get you on the right general path

                    if (rows[0].password === password) {
                        // you would probably want a more useful callback result than 
                        // just returning the username, but again - an example
                        return callback(null, rows[0].username);
                    } else {
                        return callback(new Error ('Bad Password'), null);
                    }

                });


    });
};



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liczba kolumn nie odpowiada liczbie wartości w wierszu 1

  2. Brak dostępnego pakietu msyql-server

  3. PHP Jeśli else stwierdzenie, że rekord bazy danych jest pusty, wyświetli domyślny obraz

  4. Przełączanie na gotowe zestawienia

  5. Liczenie z warunkami