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]);
}

本文文字及图片出自 出处

阅读余下内容
 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注


京ICP备12002735号