egg.js 24.11sequelize模型-查询多个和获取器

Posted 2019ab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了egg.js 24.11sequelize模型-查询多个和获取器相关的知识,希望对你有一定的参考价值。

查询多个

async index() {
    //   拿到数据
    let result = {};
    // 查询多个
    // result = await this.app.model.User.findAll();
    // 查询多个并统计
    result = await this.app.model.User.findAndCountAll();
    this.ctx.body = {
        msg:'ok',
        data:result
    }
 }

如下图所示

获取器

// app / model / user.js

'use strict';
module.exports = app => {
  const { STRING, INTEGER, DATE ,ENUM } = app.Sequelize;
  // 配置(重要:一定要配置详细,一定要!!!)
  const User = app.model.define('user', {
    id: { type: INTEGER(20).UNSIGNED, primaryKey: true, autoIncrement: true },
      username: { type: STRING(30), allowNull: false, defaultValue: '', comment: '用户名称', unique: true},
      password: { 
          type: STRING(200),
          allowNull: false, 
          defaultValue: '' ,
          set(val){
              let hash = val + '123456';
              this.setDataValue('password',hash);
          }
      },
      avatar_url: { type: STRING(200), allowNull: true, defaultValue: '' },
      sex: { type: ENUM, values: ['男','女','保密'], allowNull: true, defaultValue: '男', comment: '用户性别'},
      // 获取器  修改查询出来的格式  这里转换成时间戳
      created_at: {
          type:DATE,
          get(){
              const val = this.getDataValue('created_at');
              return (new Date(val)).getTime();
          }
      },
      updated_at: DATE
  },{
    timestamps: true, // 是否自动写入时间戳
    tableName: 'user', // 自定义数据表名称
 });

  return User;
};

以上是关于egg.js 24.11sequelize模型-查询多个和获取器的主要内容,如果未能解决你的问题,请参考以下文章

egg.js 24.8sequelize模型-新增

egg.js 24.10sequelize模型-查询单个

egg.js 24.12sequelize模型-where操作符

egg.js 24.13sequelize模型-字段限制排序分页

egg.js 24.9sequelize模型-批量新增和修改器

egg.js 24.15sequelize模型-删除和批量删除