【问题标题】:Sequelize, How to change value after the instantiation?Sequelize,实例化后如何更改值?
【发布时间】:2021-03-10 17:18:50
【问题描述】:

我有一个续集实例化

new Sequelize('xxxx', 'xxxx' , null, {
    host: null,
    dialect: "xxxx",
    operatorsAliases: 0,

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

然后我想更改某个值, 喜欢 =>

my_instance_sequelize.host = 'new_xxxx'

但这不会改变我的价值。 我该怎么做?

【问题讨论】:

    标签: node.js express sequelize.js


    【解决方案1】:

    创建 Sequelize 实例基本上是创建与数据库的连接。更改主机值后缀不会更改连接。它需要创建一个新实例。

    因此,如果您想更改 Sequelize 实例的 host 值,您实际上是想创建一个新实例。

    【讨论】:

    • 看起来不错,但出于我的目的,我认为我不会工作。我想做的是让客户(我平台的用户)连接到他自己的数据库。我每次都会检索 sequelize 实例以访问他的数据库。
    • 在这种情况下,请尝试创建和销毁实例,而不是“更改”它。销毁会很棘手,因为您希望对它更聪明,并且仅在实例未使用一段时间时才销毁,因为为每个请求创建和销毁实例会很昂贵。
    • 是的,它似乎更聪明,感谢您的回复:)。所以我将实例化一个新的 Sequelize()(使用客户提供的凭据),然后尝试进行身份验证。如果它有效,我会将我的续集(变量)更改为这个新实例,否则保留旧实例。应该可以。
    • 很高兴它有帮助。如果回答了原始问题,请将答案标记为已接受。
    【解决方案2】:

    找到答案 你可以像这样添加配置

    my_instance_sequelize.config.host = 'new_xxxx'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      • 2021-10-19
      • 2022-01-20
      • 2022-09-25
      相关资源
      最近更新 更多