[英]Nodejs MySQL Query sync?
我的代码:
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);
}
});
了解异步等待:
查询完成后要显示的任何内容都必须出现在.query()
function 的回调中:
{
console.log(land);
console.log("Hello World");
});
正如您所发现的, .query()
立即返回其调用者,并通过稍后调用回调 function 让您知道它已完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.