【发布时间】:2018-01-08 04:01:26
【问题描述】:
我在我的 Node.js 服务中使用 sequelize-typescript
我有一个映射到类别表的Category 类
import { Model, Table, Column } from "sequelize-typescript";
@Table
export class Category extends Model<Category>{
@Column
name: string
}
我也有CategoryController和CategoryService
export class CategoryController {
...
async getAll(request: Request, response: Response) {
let categories = await this.categoryService.getCatergories();
response.json(categories)
}
}
export class CategoryService {
async getCatergories(): Promise<Category[]> {
let categories = await Category.findAll<Category>()
return categories
}
}
一切都应该如此。
但是将Category 返回给控制器允许它使用模型类中的继承方法,例如:
export class CategoryController {
...
async getAll(request: Request, response: Response) {
let categories = await this.categoryService.getCatergories();
// Remove associated row in the database
categories[0].destroy()
response.json(categories)
}
}
我想创建一个像这样的CategoryModel 类:
export class CategoryModel {
id : number
name : string
}
并修改CategoryService中的所有方法以返回CategoryModel实例而不是Category并将Category重命名为CategoryEntity
处理此类问题的最佳方法是什么?
【问题讨论】:
标签: node.js typescript orm sequelize.js sequelize-typescript