【问题标题】:postgres init code with multiple sequelize具有多个续集的 postgres 初始化代码
【发布时间】:2021-10-02 14:38:18
【问题描述】:

我正在尝试将 js 代码转换为 ts 代码(并理解为什么会这样做)。

这是我的 JS 代码

use strict';

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.js')[env];
const db = {};

let sequelize;
if (config.use_env_variable) {
  sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
  sequelize = new Sequelize(config.database, config.username, config.password, config);
}


Object.keys(db).forEach(modelName => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

这里有多个squalise

db.sequelize = sequelize;
db.Sequelize = Sequelize;

有人可以帮助我理解含义、目的以及它们两者存在的原因吗?以及我们将在哪里使用它们。

我能够理解sequelize,但不能理解Sequelize。就像我们已经使用了new Sequelize( 那我们为什么要在 db 对象中添加它呢?

【问题讨论】:

  • 如果不探索代码库并检测db.Sequelize 的使用位置,我们如何知道为什么编写代码的人添加了该属性?它可能无用且从未使用过,或者在软件的某些其他部分中可能是必需的。我们无从得知

标签: javascript node.js typescript postgresql sequelize.js


【解决方案1】:

Sequelize 是指库本身,而 sequelize 是指 Sequelize 的一个实例,它表示与一个数据库的连接。这是推荐的约定,并且在 sequelize 的官方文档中也遵循。

例如,db.Sequelize.fn() 正在使用 sequelize 模块中的特定函数,而 db.sequelize.model.findAll() 正在使用与特定数据库的连接中的实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    相关资源
    最近更新 更多