Недавно я начал использовать Sequelize
, чтобы получить модель моей базы данных postgresql.
Для отображения базы данных я использую sequelize-auto
.
Я смог создать автоматически сгенерированное сопоставление моей базы данных с помощью sequelize-auto, когда я отправил свои аргументы таким образом в его конструктор:
init.js
let sequelizeAutoInstance = new SequelizeAuto(dbName,username,password,options)
Но это не работает, когда я пытаюсь отправить экземпляр Sequelize
следующим образом:
новый-init.js
let sequelizeInstance = new Sequelize(sequelizeOptions);
sequelizeAutoInstance = new SequelizeAuto(sequelizeInstance)
Заглянув в sequelize-auto
ctor, я увидел следующие строки:
if (database instanceof Sequelize) {
this.sequelize = database;
}
но экземпляр, возвращающий форму new Sequelize, не возвращает экземпляр Sequelize.
Что я пропустил? Благодарность
нет Дело не в этом :) Я сделал ошибку при написании поста здесь. починил это
Если я правильно понял. Вам необходимо передать экземпляр sequelize вашим моделям. Если вы используете модели расширения, вы можете просто передать экземпляр в параметры инициализации.
const { Sequelize, DataTypes, Model } = require('sequelize');
const sequelize = require("../your/db/file");
class User extends Model {}
User.init({
// Model attributes are defined here
firstName: {
type: DataTypes.STRING,
allowNull: false
},
lastName: {
type: DataTypes.STRING
// allowNull defaults to true
}
}, {
// Other model options go here
sequelize, // We need to pass the connection instance
modelName: 'User' // We need to choose the model name
});
если он функционален, то
const { Sequelize, DataTypes } = require('sequelize');
const sequelize = require("../your/db/file");
const User = sequelize.define('User', {
// Model attributes are defined here
firstName: {
type: DataTypes.STRING,
allowNull: false
},
lastName: {
type: DataTypes.STRING
// allowNull defaults to true
}
}, {
// Other model options go here
});
Все это можно найти в документации Сиквелизируйте модели
может быть на вашем init.js вы неправильно написали свое имя пользователя на usernmae?