Skip to content

模型

模型可以定义数据由哪些字段及类型值组成,然后通过何种数据源去访问数据。

定义模型

创建一个基本服务,需要使用类和Model模型类装饰器。Model装饰器会将类定义为模型类。我们创建一个股票数据的模型,文件名为gpsj.model.ts,路径:src/worker/domains/ag/gpsj/gpsj.model.ts,示例代码:

typescript
import { BaseModel, Model } from '@istock/iswork';

@Model('gpsj')
export class GpsjModel extends BaseModel {
  name!: string;
  code!: string;
  price!: number;
}

然后在src/worker/datasource-register.ts中注册使用数据源,为了简单演示,我们将使用memoryDB内存数据源。示例代码:

typescript
import { DataSource } from '@istock/iswork';
// ...
import { GpsjModel } from '@domains/ag/gpsj/gpsj.model'; 
// ...
export const memoryDataSourceModels = [
  // ...
  GpsjModel, 
  // ...
];

export const inintDataSource = async () => {
  // ...
  const memoryDataSource = new DataSource<'memoryDB'>({
    name: 'memoryDB',
    type: 'memoryDB',
    dbName: 'istock',
    entities: memoryDataSourceModels,
  });
  await memoryDataSource.initialize();
};

gpsj.service.ts中使用,示例代码:

typescript
import { Injectable } from '@istock/iswork'; 
import { Injectable, type TModelData } from '@istock/iswork'; 
import { GpsjModel } from './gpsj.model'; 
@Injectable()
export class GpsjService {
  async queryStock(code: string) {
    return { name: '股票名称', code, price: 888 }; 
    return await GpsjModel.query<TModelData<GpsjModel>>({

      filter: { field: 'code', operator: 'eq', value: code }, 
    }); 
  }
}

模型方法

详细请查看@istock/iswork文档

免责声明:本站所有信息、数据、软件仅供学习研究,都不构成投资建议,本站不承担由此导致的任何责任。