1.5.1 • Published 21 days ago

@galenjs/models v1.5.1

Weekly downloads
-
License
MIT
Repository
github
Last release
21 days ago

models

  • galen模型数据处理中心

Usage

const loadModels = require('@galenjs/models')
const path = require('path')

const bootstrap = async () => {
  const {
    remoteMethods, modelDefs, jsonSchemas, dataSources, models
  } = await loadModels({
    workspace: process.cwd(),
    modelPath: './models',
    modelDefPath: './modelDefs',
    datasources: {
      main: {
        dataSource: 'sequelize',
        options: {
          host: '127.0.0.1',
          user: 'root',
          password: 'alfieri',
          database: 'test'
        }
      },
      virtual: {
        dataSource: 'virtual',
        options: {}
      }
    }
  })
}

bootstrap()

dataSource

数据源

例如

dataSource: 'main'

tags

背景: 支持influx

模型标签-influx

例如

tags: ['host']

tableName

默认创建的表名

例如

tableName: 't_user'

modelName

默认模型名

例如

modelName: 'User'

dialect

默认使用的是sequelize

  • sequelize
  • virtual-虚拟模型类型(不创建任何模型)
  • influx

例如

dialect: 'mysql'

properties

模型属性

例如

properties:
  id:
    type: integer
    autoIncrement: true
    primaryKey: true
  phone:
    type: string
    length: 11
    description: '手机号'
  password:
    type: string
    length: 32
    description: '密码'
  nickName:
    type: string
    length: 32
    description: '昵称'
  createdAt:
    type: date
    allowNull: false
  updatedAt:
    type: date
    allowNull: false
  deletedAt:
    type: date
    allowNull: false

relations

关联关系

  • belongsTo
relations:
  role:
    type: 'belongsTo'
    model: 'Role'
  • hasOne

  • hasMany

relations:
  roles:
    type: 'hasMany'
    model: 'Role'
  • belongsToMany
relations:
  roles:
    type: 'belongsToMany'
    model: 'Role'
    through: 'UserRole'

indexes

联合索引(支持的类型是index和unique,后续在考虑接入fulltext)

例如

indexes:
  testIndex:
    type: 'unique'
    fields:
      - phone
      - nickName

remoteMethods

接口请求信息

自定义接口信息,用来生成文档和api路由

例如

remoteMethods:
  register:
      path: '/register'
      method: 'post'
      tags:
        - user
      summary: '用户注册'
      requestBody:
        body:
          phone:
            type: string
            length: 11
            description: '手机号'
          password:
            type: string
            length: 32
            description: '密码'
        required:
          - phone
          - password
      output:
        200:
          type: 'object'
          result:
            id:
              type: integer
              autoIncrement: true
              primaryKey: true
            phone:
              type: string
              length: 11
              description: '手机号'
            password:
              type: string
              length: 32
              description: '密码'
            nickName:
              type: string
              length: 32
              description: '昵称'
            createdAt:
              type: date
              allowNull: false
            updatedAt:
              type: date
              allowNull: false
            deletedAt:
              type: date
              allowNull: false 

path

接口路径,可以默认添加prefix

responseType

数据返回类型

  1. origin - 不对结果进行处理

  2. normal - 返回标准开放API格式数据

{
  "code": 0,
  "message": "",
  "data": {}
}

method

接口方法,get,post,put,delete,patch,head

标签接口分类tags

例如

tags:
  - user

接口描述-summary

query

请求query参数 例如

query:
  filter:
    type: string
    description: '查询参数'

requestBody

请求体 例如

requestBody:
  body:
    phone:
      type: string
      length: 11
      description: '手机号'
    password:
      type: string
      length: 32
      description: '密码'
  required:
    - phone
    - password

params

例如

query:
  id:
    type: string
    description: 'id'

output

返回结果 例如

output:
  200:
    type: 'object'
    result:
      id:
        type: integer
        autoIncrement: true
        primaryKey: true
      phone:
        type: string
        length: 11
        description: '手机号'
      password:
        type: string
        length: 32
        description: '密码'
      nickName:
        type: string
        length: 32
        description: '昵称'
      createdAt:
        type: date
        allowNull: false
      updatedAt:
        type: date
        allowNull: false
      deletedAt:
        type: date
        allowNull: false 

output支持model 例如

output:
  200:
    type: 'object'
    model: 'User'
1.5.1

21 days ago

1.5.0

21 days ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.6

2 years ago

1.3.4

2 years ago

1.3.2

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.11

2 years ago

1.1.11-alpha.0

2 years ago

1.1.5

2 years ago

1.1.1

2 years ago

1.0.25-alpha.0

2 years ago

1.0.22

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.17

2 years ago

1.0.1

3 years ago

1.0.0

3 years ago

1.0.8

2 years ago

1.0.15-alpha.0

2 years ago

1.0.15

2 years ago

0.7.26

3 years ago

0.7.25

3 years ago

0.7.28

3 years ago

0.7.27

3 years ago

0.7.24

3 years ago

0.7.23

3 years ago

0.7.22

3 years ago

0.7.20

3 years ago

0.7.19

3 years ago

0.7.15

3 years ago

0.7.16

3 years ago

0.7.14

3 years ago

0.7.11

3 years ago

0.7.10

3 years ago

0.7.9

3 years ago

0.7.12

3 years ago

0.7.6

3 years ago

0.7.5

3 years ago

0.7.8

3 years ago

0.7.7

3 years ago

0.7.2

3 years ago

0.7.4

3 years ago

0.7.3

3 years ago

0.7.1

3 years ago

0.7.0

3 years ago