javascript - Nodejs MySQL查询同步?
问题描述
我需要一个带有mysql的nodejs中的select语句。在此之后,我想“console.log()”-something。
我的代码:
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"
我怎样才能做到这一点?
解决方案
对于顺序执行,您需要使用 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);
}
});
了解异步等待:
推荐阅读
- r - R:为每列过滤具有设定数量值的行
- openldap - OpenLDAP 属性 displayName
- r - 将选择与之前 N 次试验的选择进行比较
- reactjs - 如何支持从更新的网站切换到旧网站?
- xml - XSL for-each 只显示第一条记录
- xslt - XSLT 显示唯一的对象名称
- backup - Does OneDrive backup produce any type of error logging?
- javascript - 存储初始状态为数组时如何实现Reducer?
- javascript - Migrating Js plugins to Vue
- r - extracting standard errors for long-run coefficients from an ARDL model