Mysql
 sql >> Database >  >> RDS >> Mysql

async e await sulla chiamata MySQL nel nodo js

Devi restituire una promessa dalla funzione asincrona displayDB se vuoi usare il await parola chiave nel test, devi prima imparare come funzionano le promesse. Pseudo codice :

var displayDB = () => {
    return new Promise((resolve,reject)=>{
        connection.query('SELECT * FROM products', (err, resp) => {
            if (err) {
                reject(err)
            } else {
                const table = [];
                resp.forEach((product) => {
                    obj = {
                    'Product ID': product.productID,
                    'Category': product.category,
                    'Price': product.price,
                    'Stock': product.stockQuantity
                    }
                    table.push(obj)
                })
                resolve(table)
            }
        })
    })
}


var test = async () => {
   try{
    console.table(await displayDB())
    }catch(e){
        console.log(e)
    }
    connection.end()
}
test()

https://developer.mozilla.org/en -US/docs/Web/JavaScript/Reference/Global_Objects/Promise