1.7.0 • Published 12 months ago

@galenjs/base v1.7.0

Weekly downloads
14
License
MIT
Repository
github
Last release
12 months ago

base

  • galen模型数据处理中心

Usage

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

const bootstrap = async () => {
  const {
    remoteMethods, modelSchemas, schemas
  } = await loadModels({
    workspace: process.cwd(),
    modelPath: 'model'
  })
}

bootstrap()

databaseName

背景: sequelize-models支持多实例

模型数据库名称(默认为main)-仅支持sequelize models

例如

databaseName: 'main'

tags

背景: 支持influx

模型标签-influx

例如

tags: ['host']

tableName

默认创建的表名

例如

tableName: 't_user'

modelName

默认模型名

例如

modelName: 'User'

dialect

默认使用的是mysql

  • mysql-默认创建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

  • 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

secretType

加密类型: client

此处只实现了客户端拿服务端公钥加密数据,然后,服务端解密数据

传值案例:

{
  "iv": "pcp+MVj4zfCMNjB77le9oA==",
  "encryptedKey": "AICNw7abzCeSVR+0esubZA74iYJPHXG4Bk0SKcEJ9q5dcKLQIwbqSx0YlEHss/Q99Bh95DyMYv8VRhHIwIx/6P1LHpaOTTSOtl6Viay4R2j6Zucvoiu7oKnWs0PVRiiojhLSGNxmlGjT553gNfwpglwnkYrcmKyj/A5I5QoW6IqcURGhP/W5wrWgEqMIIJebpLrgyh+keZ3EOx6GC/68Q+EallDFpERSLulg99gTcbZaHquonKHWQFLF1QRS0U0BF70rN2Wm4AwhoLzX1y89R1/8zMxPpSxXlGOJr38CDmQbHr+2H1Az37YK3l54+WrrHQnxBkb+/6hleHKUI1Y8nw==",
  "encryptedData": "AynFEIrRXWYnDY6miD8rrGBYGXou4JNeJqrvD8WFKHuBBGwoaJeUKJ9WWcAHPBMB",
  "secretType": 1,
  "clientId": "20211109000000523"
}

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.7.0

12 months ago

1.4.1

3 years ago

1.4.0

3 years ago

1.0.17

3 years ago

1.0.0

4 years ago

0.7.27

4 years ago

0.7.14

4 years ago

0.7.8

4 years ago

0.7.1

4 years ago

0.7.0

4 years ago

0.6.14

4 years ago

0.5.16

4 years ago

0.6.0

4 years ago

0.5.12

4 years ago

0.5.0

4 years ago

0.4.6

4 years ago

0.4.6-alpha.0

4 years ago

0.4.0

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.6

5 years ago

0.2.5

5 years ago

0.2.2

5 years ago

0.2.0

5 years ago