Sequelize-typescript模型中的TypeError

acruukt9  于 2023-05-01  发布在  TypeScript
关注(0)|答案(1)|浏览(87)

我正在使用模块seqeulize-typescript的模型定义文档为express API定义一个typescript模型。
连续 typescript
这是一个正在构建的新API,所以它是目前唯一的模型。当启动服务器时,我遇到了一个TypeError:在服务器启动期间,无法将模型中第一列的undefined或null转换为object。

[nodemon] 2.0.22
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node dist/app.js`

Here is where the error is hit.

下面是模型(我排除了一些列的,因为它是相同的概念。

import { Table, Model, Column, DataType } from 'sequelize-typescript';

@Table({
    timestamps: false,    
    tableName:"BranchNew",
    freezeTableName: true,
    modelName:"BranchNew",
    schema: 'hr',
})
export class Branch extends Model {
    @Column({
        type: DataType.INTEGER,
        allowNull: true,
    })
    ContractorCode!: number;
    @Column({
        type: DataType.INTEGER,
        autoIncrement: false,
        allowNull: false,
        primaryKey: true,
    })
    BranchNumber!: number;
    @Column({
        type: DataType.STRING,
        allowNull: false,
    })
    BranchName!: string;
    @Column({
        type: DataType.DATE,
        allowNull: true,
    })
    DateAcquired!: Date;
    @Column({
        type: DataType.STRING,
        allowNull: true,
    })
    Telephone!: string;
    ...
}

错误显示在此行生成的dist文件夹中。(我已经把它分成几行,以便于阅读)。

__esDecorate(null, null, _ContractorCode_decorators, 
{ kind: "field", name: "ContractorCode", static: false, private: false, 
access: { has: obj => "ContractorCode" in obj, 
get: obj => obj.ContractorCode, 
set: (obj, value) => { obj.ContractorCode = value; } } }, 
_ContractorCode_initializers, _instanceExtraInitializers);

所有其他列都在后面显示,并带有此(null,null,...)开始。我假设我的模型没有正确定义,但它看起来与上面提到的文档相匹配。

3htmauhk

3htmauhk1#

我回去重读了文档,在安装步骤下面错过了一条消息。现在很清楚,我已经回去了。问题中列出的文档显示了下面的安装。
你的tsconfig。JSON需要以下标志:

"target": "es6", // or a more recent ecmascript version
"experimentalDecorators": true, * I still had this commented
"emitDecoratorMetadata": true * I still had this commented

因此,如果遇到同样的问题,取消注解这两行,它应该构建。错误行不再出现在[model]中。dist文件夹的js。

相关问题