sequelize-base

0.6.9 • Public • Published

sequelize-base

NPM version build status Test coverage npm download

A base class for sequelize with some common functions.

Install

$ npm install sequelize-base

Usage

// modle/user.js
'use strict';
 
const Base = require('sequelize-base');
const Sequelize = require('sequelize');
const {INTEGER, STRING, CHAR} = DataTypes;
 
const pool = new Sequelize(Object.assign(config, {
  logging: (msg) => log.info(msg),
}));
 
const attributes = {
  userId: {type: INTEGER(11), primaryKey: true, autoIncrement: true, field: 'user_id'},
  account: {type: STRING(30), comment: 'accout', allowNull: false, unique: true, field: 'accout'},
  nickName: {type: STRING(30), comment: 'nickName', allowNull: false, field: 'nickname'},
  password: {type: STRING(32), comment: '密码', allowNull: false, field: 'password'},
  invalid: {type: CHAR(1), defaultValve: 'N', comment: '是否有效', field: 'invalid'},
};
 
const UserEntity = pool.define('User', attributes, {
  timestamps: true,
  freezeTableName: true,
  updatedAt: 'mtime',
  createdAt: 'ctime',
  tableName: 'bas_user',
  charset: 'utf8mb4',
  comment: '用户表',
});
 
class UserModel extends Base {
 
  constructor() {
    super({
      entity: UserEntity,
    });
  }
 
}
 
module.exports = new UserModel();

API

请参考 测试套件

  • super(config)

    • config.entity sequelize model
    • config.enableSoftDeleted 是否开启软删除,默认为 true
    • config.softDeleted 软删除字段配置
    • config.softDeleted.field 软删除字段名
    • config.softDeleted.yes 软删除字段有效枚举值
    • config.softDeleted.no 软删除字段无效枚举值
  • instance

    • model sequelize model instance, 参考 sequelize model usage api
    • count(where?)
    • getList(where, fields?)
      • or getList(fields)
      • or getList()
      • or getList(where, fields, order)
    • getData(where, fields?)
    • getPageList(currentPage, pageSize, where?, fields?)
      • or getPageList(currentPage, pageSize, fields)
      • or getPageList(currentPage, pageSize)
      • or getPageList(currentPage, pageSize, fields, order)
    • create(data)
    • delete(where)
    • update(where, data)
    • getPageListContact(include, currentPage, pageSize, where?, fields?)
      • or getPageListContact(include, currentPage, pageSize, fields)
      • or getPageListContact(include, currentPage, pageSize)
      • or getPageListContact(include, currentPage, pageSize, fields, order)
  • instance where

    • [Base.SOFT_DELETED] 是否构造软删除有效字段条件

Readme

Keywords

Package Sidebar

Install

npm i sequelize-base

Weekly Downloads

1

Version

0.6.9

License

MIT

Unpacked Size

25.7 kB

Total Files

7

Last publish

Collaborators

  • zhoumq