async await mysql nodejs 两种推荐技巧
nodejs mysql 里的使用async/await同步异步调用是个需要技巧的事情。
方法一:使用 mysql 工具库
这种方法需要 Node 的版本在 8+ 以上,我们可以使用原生 util.promisify()
处理node mysql代码。
不要忘了在代码里调用 bind()
方法:
const mysql = require('mysql'); // or use import if you use TS
const util = require('util');
const conn = mysql.createConnection({yourHOST/USER/PW/DB});
// node native promisify
const query = util.promisify(conn.query).bind(conn);
(async () => {
try {
const rows = await query('select count(*) as count from file_managed');
console.log(rows);
} finally {
conn.end();
}
})()
方法二:使用 mysql2 工具库
Use mysql2 packet. It has promise wrapper so you can do that:
async function example1 () {
const mysql = require('mysql2/promise');
const conn = await mysql.createConnection({ database: test });
let [rows, fields] = await conn.execute('select ?+? as sum', [2, 2]);
}
本文文字及图片出自 出处
阅读余下内容