zoukankan      html  css  js  c++  java
  • sequelize 学习笔记

    使用 eggjs 和 sequelize 进行开发,一些要注意的地方

    1、egg 的 egg-sequelize 插件是 sequelize 的V4版本,目前已经更新到V5版本,API有一些变化,比如V5没有了findById等,需要注意。

    2、配置时区,要将时区配置为东八区,否则自动插入 created_at 字段的时候会是0时区的时间

      const sequelize = {
        dialect: 'mysql',
        host: '127.0.0.1',
        port: 3306,
        database: 'test',
        username: 'root',
        password: 'root',
        timezone: '+08:00',  // 配置时区
      };

    3、数据库创建表的时候必须要有 id, created_at, updated_at 三个字段,数据库表名要使用复数形式,不如 user -> users,如果没使用复数形式,在创建 model 的时候就要配置 freezeTableName

        const User = app.model.define('user', {
            id: { type: INTEGER, primaryKey: true, autoIncrement: true },
            name: STRING(30),
            age: INTEGER,
        }, {
            freezeTableName: true, // Model 对应的表名将与model名相同
            // timestamps: false,  // 关闭 created_at 和 updated_at 字段
        });

    4、new Date('2019-04-01') 查询的是 2019-04-01 08:00:00 的时间,而不是0点,要想是0点需要 new Date('2019-04-01 00:00:00')

            const res = await ctx.model.User.findAll({
                where: {
                    created_at: {
                        $lt: new Date(),  // 小于当前时间的
                        // $lt: new Date(new Date() - 1000 * 60 * 60 * 24 * 1),  // 小于当前时间一天前的
                        // $lt: new Date('2019-04-03'),  // 小于 2019-04-03 08:00:00
                        // $lt: new Date('2019-04-03 00:00:00'),  // 小于 2019-04-03 00:00:00
                        $gt: new Date(ctx.params.date)  // 接收到的日期字符串,如:2019-4-1
                    }
                }
            });

  • 相关阅读:
    JMX堆栈分析
    Python装饰器示例
    安装指定版本capistrano
    Linux CPU使用率含义及原理
    API gateway 之 kong 安装
    Redis内存分析方法
    Elasticsearch集群内的原理
    Elasticsearch基础
    Python智能检测编码并转码
    (转)rabbitmq的web管理界面无法使用guest用户登录
  • 原文地址:https://www.cnblogs.com/3body/p/10655324.html
Copyright © 2011-2022 走看看