Nodejs MySQL Синхронизация запросов c? - PullRequest
0 голосов
/ 14 июля 2020

Мне нужно выбрать статус в nodejs с mysql. После этого я хочу "console.log ()" - что-нибудь.

Мой код:

con.query("SELECT l.id, l.name FROM country l ORDER by l.id", function(err, land, fields)
{
     console.log(land);
});
console.log("Hello World");

Мой вывод:

"Hello World"
RowDataPackets

Мне нужен этот вывод:

RowDataPackets
"Hello World"

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

для последовательного выполнения вам необходимо использовать asyn c -await

вы можете записывать файлы базы данных, такие как

        const util = require('util')
        const mysql = require('mysql')
        const pool = mysql.createPool({
          connectionLimit: 10,
          host: 'localhost',
          user: 'root',
          password: 'password',
          database: 'my_database'
        })

        // Ping database to check for common exception errors.
        pool.getConnection((err, connection) => {
          if (err) {
            if (err.code === 'PROTOCOL_CONNECTION_LOST') {
              console.error('Database connection was closed.')
            }
            if (err.code === 'ER_CON_COUNT_ERROR') {
              console.error('Database has too many connections.')
            }
            if (err.code === 'ECONNREFUSED') {
              console.error('Database connection was refused.')
            }
          }

          if (connection) connection.release()

          return
            })

            // Promisify for Node.js async/await.
            pool.query = util.promisify(pool.query)

            module.exports = pool

, а затем всякий раз, когда вы можете использовать после импорта, как это.

        const db= require('./database')
        route.post('/users',async function(){
              try{
                let result = await db.query('SELECT l.id, l.name FROM country 
       l ORDER by l.id');
             }catch(err){
              console.log(err);
             }
         });

Узнайте об asyn c -await:

Что такое async / await на NodeJS

https://javascript.info/async-await

0 голосов
/ 14 июля 2020

Все, что вы хотите отобразить после завершения запроса, должно появиться в обратном вызове из функции .query():

{
     console.log(land);
     console.log("Hello World");
});

Как вы обнаружили, .query() немедленно возвращается к вызывающей стороне и позволяет вы знаете, что это делается позже, вызвав функцию обратного вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...