使用模型类创建一个条目

时间:2019-06-06 13:28:19

标签: typescript sequelize.js

我正在努力使用续集创建一个条目。我有一个具有登录名,密码和类型的模型帐户。我声明该帐户并设置登录名,密码和类型,然后致电Account.create(account)。该帐户是在数据库中创建的,因为它生成了一个ID,但未填写字段。 当我使用对象调用create时,效果很好。

我真的不想每次想在数据库中添加东西时都声明一个对象,我希望可以续用我声明的模型。

这是我的代码

//account.model.ts
@Table
export default class Account extends Model<Account> {

    @PrimaryKey
    @AutoIncrement
    @Column({ type: DataType.INTEGER, field: 'id' })
    id: number;

    @Column({ type: DataType.STRING, field: 'login' })
    login: string;

    @Column({ type: DataType.STRING, field: 'password' })
    password: string;

    @Column({ type: DataType.ENUM, values: ['USER', 'BOX'], field: 'type' })
    type: string;

    @HasOne(() => Entity)
    entity: Entity;

    toString(): string {
        return "id=" + this.id + " login=" + this.login + " password=" + this.password + " type=" + this.type;
    }

}

//test.ts
let account = new Account();
account.login = "jack";
account.password = "jack";
account.type = "USER";

console.log("account:" + account.toString());
let storedAccount = await Account.create(account);
console.log(storedAccount.toString());
console.log();

console.log("object: { login: 'john', password: 'john', type : 'USER' }");
let storedAccount3 = await Account.create({ login: 'john', password: 'john', type: 'USER' });
console.log(storedAccount3.toString());

这是输出:

account:id=null login=jack password=jack type=USER
id=3 login=null password=null type=null

object: { login: 'john', password: 'john', type : 'USER' }
id=4 login=john password=john type=USER

我想知道这是预期的行为还是做错了。

谢谢

1 个答案:

答案 0 :(得分:0)

最后,我自己找到了它,Model基类有一个save()方法,其功能与create相同。所以我可以直接致电account.save()