使用Typescript将Sequelize模型作为属性传递给Node

时间:2018-11-09 14:04:19

标签: node.js typescript sequelize.js sequelize-typescript

我正在使用Node,Typescript和Sequelize构建一个项目。我想定义具有以下功能的GENERAL控制器:

class Controller {
  Schema: <Sequelize-Model>;

  constructor(schema: <Sequelize-Model>) {
    this.Schema = schema
  }

  find(req: Request, res: Response, next: NextFunction) {
    return this.Schema
      .findWithCount(req.query)
      .then(collection => res.status(200).json(collection))
      .catch(next);
  }
}

问题是,我不知道要使用哪种类型。我尝试使用Sequelize中的 any 模型,sequelize-typescript中的 Model 和其他一些选项。想法?

1 个答案:

答案 0 :(得分:-1)

您可以这样做,

型号:

@Table({
 })

 export class model1 extends Model<model1> {
     @PrimaryKey
     @Column({
         allowNull: false,
         type: DataType.UUID,
     })
     public id: string;

 }

课程

 import { model1 } from '../../model/model1';
 export default class Repository {
     public find(req: any): Promise<any> {
         return new Promise((resolve, reject) => {
             model1.findAndCount({
                 where: req.query
             }).then(
                 (results) => {
                     resolve(results);
                 },
                 err => {
                     reject(err);
                 }
             );
         });
     }
 }