Передайте модель Sequelize как свойство в Node, используя Typescript

Я создаю проект с Node, Typescript и Sequelize. Я хочу определить ОБЩИЙ контроллер со следующими функциями:

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);
  }
}

Проблема в том, что я не знаю, какой тип использовать в . Я пробовал с any, Model из Sequelize, Model из secvelize-typescript и еще с несколькими вариантами. Идеи?


person Leandro    schedule 09.11.2018    source источник
comment
Привет, у меня такая же проблема. Как вы это решили?   -  person Sami    schedule 10.03.2019
comment
Я нашел это, и он отлично работает: stackoverflow.com/a/57141896/9834967   -  person Leandro    schedule 07.10.2019


Ответы (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);
                 }
             );
         });
     }
 }
person Imrahamed    schedule 27.11.2018