Автор.ts
import {Table, Model, Column, DataType} from 'sequelize-typescript'
@Table
export class Author extends Model<Author> {
constructor(){
super();
}
@Column(DataType.STRING)
fname: string
@Column(DataType.STRING)
lname: string
}
App.ts
import {Sequelize} from 'sequelize-typescript';
import { customer } from './model/customer';
import { Author } from './model/Author';
export class SQLRepo {
repo:Sequelize = null;
constructor(){
this.connectDb();
}
connectDb(): any {
this.repo = new Sequelize({
database: 'postgres',
dialect: 'postgres',
host: 'localhost',
username: 'postgres',
password: 'xxxxx',
storage:
'D:/Sequalize/assosiation/database.sqlite',
modelPaths: [__dirname + '/models'],
define: {
underscored: false,
freezeTableName: false,
timestamps: false
}
});
this.repo.addModels([Author])
this.repo.
authenticate().
then(function(){
console.log("database connected ...")
new Author({fname: 'karim' , lname: 'mirazul'}).save();
}).
catch(function(error){
console.log("Database catch block : "+ error)
})
}
}
new SQLRepo();
создайте объект вызова SQLRepo, чтобы с его помощью я мог успешно подключиться к базе данных, но он показывает ошибку после подключения к базе данных. Когда он пытается вставить данные в Author
это дает мне этот вывод:
Выполнение (по умолчанию): SELECT 1+1 AS результирующая база данных подключена ... Блок перехвата базы данных:
Error: Model not initialized: "Model" needs to be added to
a Sequelize instance before "call" can be called.
modelPaths
из параметра конфигурации, который вы передаетеnew Sequelize
. Я думаю, что это избыточно и может вызвать проблему. - person Naor Levi   schedule 03.12.2019