繁体   English   中英

Nodejs MySQL 查询同步?

[英]Nodejs MySQL Query sync?


我需要一个带有 mysql 的 nodejs 中的 select 语句。 在此之后,我想“console.log()”-something。

我的代码:

RowDataPackets
"Hello World"

我的 Output:

 "Hello World" RowDataPackets

我需要这个 output:

 RowDataPackets "Hello World"

我怎样才能做到这一点?

对于顺序执行,您需要使用 async-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);
             }
         });

了解异步等待:

了解 NodeJS 上的 async/await

https://javascript.info/async-await

查询完成后要显示的任何内容都必须出现在.query() function 的回调中:

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

正如您所发现的, .query()立即返回其调用者,并通过稍后调用回调 function 让您知道它已完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM