Search code examples
node.jspromisemysql2

Why my SQL response is undefined?(using mysql2/promise)


i want to pick my mysql response.

this is my code.

let [isTrue] = await conn.query("select user_key, isvalid from auth where user_key = ?", [user_key]);
console.log(isTrue);

This response was [ TextRow { user_key: '123445', isvalid: 1 } ]

That's good. But i want to get a value of user_key. So I typed this code.

console.log(isTrue.user_key)

But this result was only undefined

How can i get a value of user_key??


Solution

  • instead of "await conn.query" use like this "await query".

    Example

    const mysql = require('mysql'); // or use import if you use TS
    const util = require('util');
    const conn = mysql.createConnection({host:"localhost", user:"root", password:"root", database:"test"});
    
    // node native promisify
    const query = util.promisify(conn.query).bind(conn);
    
    (async () => {
      try {
        //const rows = await query('select count(*) as count from users ');
        //console.log(rows);
        var user_key = 1;
         const [isTrue] = await query("select id,name from users where id = ?", [user_key]);
        console.log(isTrue.name);
    
      }
        catch(err) {
        throw new Error(err)
        }
      finally {
        conn.end();
      }
    })();