javascript - 无法通过 sequelize.authenticate() 方法使用异步等待

标签 javascript sql node.js async-await sequelize.js

SQL 密码每 24 小时过期一次(间隔可能随时更改,恕不另行通知),因此我想在运行 SQL 查询之前使用 Sequelize beforeConnect Hook 验证身份验证。
如果没有 async await,SQL 查询将失败,然后进行身份验证,前面的查询将通过。我想以异步方式运行代码,因此没有 SQL 查询失败。请帮我解决这个问题。

    const sequelize = new Sequelize(database, username, password, params);

    sequelize.beforeConnect(async (currConfig) => {
        try {
            await sequelize.authenticate();
            console.log('Connection has been established successfully.');
        } catch (error) {
            console.error('Unable to connect to the database:', error);
        }
    });

最佳答案

您可以 promise beforeConnect

let currConfig = await prepare(sequelize);
try {
  await sequelize.authenticate();
  console.log("Connection has been established successfully.");
} catch (error) {
  console.error("Unable to connect to the database:", error);
}

function prepare(sequelize) {
  return new Promise(res => {
    sequelize.beforeConnect(config => res(config));
  });
}
只要确保你的函数有 async在它面前

关于javascript - 无法通过 sequelize.authenticate() 方法使用异步等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65002748/

相关文章:

javascript - 如果全局变量不存在,如何初始化它?

MySQL 查询具有相同外部表的两个不同列

sql - dplyr sql连接

node.js - 无法在 ubuntu 上使用 Nodemon

javascript - 无法使用 Cheerio (Node.js/jQuery) 查找元素

javascript - Canvas 上的图像相互堆叠

javascript - parent.parent.window.location.href 不工作

javascript - 我们可以通过在控制台中编写循环来多次提交表单吗?

sql - 在ORDER BY中使用SQL串联

node.js - 如何在 Node.js 中正确打开和维护与多个 Mongo 数据库的连接?