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
                }
            }
        });

 

转载于:https://www.cnblogs.com/3body/p/10655324.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值