如何异步返回一个sequelize实例?

2023-12-01

我似乎无法正确通过sequelize对象从service.js文件到index.js续集变量。

有什么地方看起来不合适吗?

index.js

let sequelize;
let contractModel;

(async () => {
    sequelize = await lambdaHelper.init(); //The issue is here
    contractModel = require('./models/Contract')(sequelize, Sequelize); 
})();

服务.js

exports.init = async () => {
    let sequelize = await new Sequelize(process.env.FNI_DATABASE, process.env.FNI_USER, process.env.FNI_PASSWORD, {
        host: process.env.FNI_HOST,
        dialect: 'mysql',
        operatorsAliases: false,
        define: {
            timestamps: false,
            freezeTableName: true
        },

        pool: {
            max: 5,
            min: 0,
            acquire: 30000,
            idle: 10000
        }

    });
    return sequelize;
};

服务2.js以下代码同步工作

exports.init = () => new Sequelize(process.env.FNI_DATABASE, process.env.FNI_USER, process.env.FNI_PASSWORD, {
    host: process.env.FNI_HOST,
    dialect: 'mysql',
    logging: false,
    operatorsAliases: false,
    define: {
        timestamps: false,
        freezeTableName: true
    },

    pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
    }

});

results

********** ********** 之前(节点:66912) UnhandledPromiseRejectionWarning:未处理的承诺拒绝 (拒绝 ID:1):TypeError:无法读取属性“findAll” 未定义(节点:66912)[DEP0018] DeprecationWarning:未处理的承诺 拒绝已被弃用。将来,承诺拒绝 未处理将以非零退出终止 Node.js 进程 代码。

Result2

********** ********** 之前(节点:66540) UnhandledPromiseRejectionWarning:未处理的承诺拒绝 (拒绝 ID:1):TypeError:无法读取属性“findAll” 未定义(节点:66540)[DEP0018] DeprecationWarning:未处理的承诺 拒绝已被弃用。将来,承诺拒绝 未处理将以非零退出终止 Node.js 进程 代码。执行(默认):SELECT 1+1 AS 结果类型错误:无法读取 未定义的属性“定义” 在 module.exports 处


await new Sequelize(...)在上面的代码中期望new Sequelize返回一个承诺,但事实并非如此。有authenticate method就是这样做的。

它应该是:

exports.init = async () => {
    let sequelize = new Sequelize(...);
    await sequelize.authenticate();
    return sequelize;
};

确保承诺拒绝始终得到正确处理:

(async () => {
    sequelize = await lambdaHelper.init();
    contractModel = require('./models/Contract')(sequelize, Sequelize);
})().catch(console.error);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何异步返回一个sequelize实例? 的相关文章

随机推荐

  • Serilog.Exception 解构器的 JSON 配置

    我正在将 Serilog 添加到项目中 并且我特别想添加Serilog Exceptions以及 继指导方针我已经成功添加了异常丰富器 但我还需要链接页面中提到的解构 使用流畅的配置可以正常工作 config Enrich WithExce
  • MySQL 中的数组

    我想将数组存储在记录中 Table1 ID Name Friends friends should be an array 1 Bill 2 3 2 Charles 1 3 3 Clare 1 我希望能够进行这样的搜索 SELECT FRO
  • 使用加载了 Ajax 内容的 jQuery“点击”功能?

    我有一个通过 Ajax 加载的 php 文件的内容 其中包含 HTML 和 JavaScript 我有一个按钮
  • 在 Visual Studio Web 测试中转义上下文参数格式

    我正在尝试弄清楚如何通过 Visual Studio Web 测试在 POST 中传递特定的数据 而不将其识别并视为上下文参数 POST 包含一个 字符串 主体 它是一个 json 文档 身体的一部分包括如下内容 My Attribute
  • Emacs 区域高亮显示

    有没有办法在字体锁定模式打开的缓冲区中突出显示文本中的字符串 但不是所有此类字符串 假设我有一个 SQL 模式的缓冲区 我想突出显示其中的一个字符串 下面的代码不起作用 set text properties 10 20 face hi y
  • 康康舞能力在单独的文件中

    是否可以在单独的文件中定义能力并将其包含在初始化方法内的ability rb文件中 下面的代码返回 尝试并得到 未定义的方法 can 能力 rb def initialize user include MyExtension Somethi
  • 简化反三角代码(While 循环)

    我已经成功创建了一个代码来使用 while 循环打印水平翻转的三角形 现在虽然它有效 但我想知道是否可以简化它 即不使用 store 变量 但我想用 while 循环保留它 当前代码是 myLen int input Enter the n
  • 使用 firebase-queue 返回任务结果

    我正在使用 Firebase 开发移动应用程序 在移动应用程序中 我需要根据用户的手机号码注册用户 类似于 Whatsapp 我打算使用 Nexmo 来验证用户的手机号码 验证号码涉及两个步骤 将用户手机号码发送到 Nexmo API 成功
  • Hadoop 选项没有任何效果(mapreduce.input.lineinputformat.linespermap、mapred.max.map.failures.percent)

    我正在尝试实现一个 MapReduce 作业 其中每个映射器将占用文本文件的 150 行 并且所有映射器将同时运行 此外 无论有多少映射任务失败 它都不应失败 这是配置部分 JobConf conf new JobConf Main cla
  • 承诺链接:在下一个回调中使用前一个承诺的结果[重复]

    这个问题在这里已经有答案了 我正在使用直接的 ES6 Promise 使用 es6 promise polyfill 库 并且在访问链接的 Promise 中的先前 Promise 的结果时遇到了问题 这个问题在 Angular Q 的上下
  • JavaScript - 循环比逐行离散编写更快吗?

    忽略所有代码的简洁性和可读性 哪个脚本会更快完成 This for var i 0 i lt 10 i do that thing Or this do that thing do that thing do that thing do t
  • 确定连续日期

    我有一个清单datetime dates我需要检查每个日期是否来自下一个连续月份 希望代码中我的意思很清楚 import datetime from unittest import TestCase def is consecutive d
  • 如何在 mongoDB 中获取多个匹配过滤器计数

    我收集了大约 50000 份文档 集合架构如下所示 param1 Boolean param2 Boolean param3 Boolean param4 Boolean etc 我应该如何查询数据库 以获取每个匹配的参数计数 目前 我正在
  • 如何使用 JavaScript 删除加载视图中的所有 Chrome 通知?

    这是我在 Google Chrome 中显示通知的代码 如何在代码中关闭通知 document addEventListener DOMContentLoaded function if Notification alert Desktop
  • Facebook 提供商未配置。确保添加“facebook_application_id”字符串

    我正在使用 Firebase UI 登录并尝试在我的 Android 应用程序中实现 Facebook 登录 启动 firebase ui 活动时我得到 java lang IllegalStateException Facebook 提供
  • 用于个人粉丝页面的 Facebook Messenger 聊天机器人

    我使用 Dialogflow 创建了一个聊天机器人 将其连接为我的个人粉丝页面 我的应用程序的粉丝页面 的 Facebook Messenger 聊天机器人 我通过了第一次审核并获得批准 下一步是 验证我的业务 我不是一家企业 我只是一个个
  • 在窗口应用程序中使用 HttpContext.Current.Server.MapPath?

    我可以在窗口应用程序中做这样的事情吗 HttpContext Current Server MapPath Email ForgotPassword txt 该项目是一个基于网络的应用程序 我的下一个项目基本上是一个窗口服务 寻求建议 要获
  • 搜索列表列表中一列的最大数字[重复]

    这个问题在这里已经有答案了 我有一份清单 list 1 2 5 2 8 7 3 6 9 我想找到第三列的最大数字 所以我尝试了 zipped zip list print max zipped 2 但它没有显示最大的数字 有人知道原因和解决
  • rpy2 在 debian 上安装问题

    我已经尝试了所有我能想到的在 debian 服务器上安装 RPy2 的安装方法 但无论如何我都收到相同的消息 我已经在我的Mac上成功安装并使用了它 我可能缺少什么吗 start Processing rpy2 Running setup
  • 如何异步返回一个sequelize实例?

    我似乎无法正确通过sequelize对象从service js文件到index js续集变量 有什么地方看起来不合适吗 index js let sequelize let contractModel async gt sequelize