【问题标题】:Is there a way to set 'expires' option in Sequelize timestamps just like Mongoose?有没有办法像猫鼬一样在 Sequelize 时间戳中设置“过期”选项?
【发布时间】:2020-11-21 09:31:50
【问题描述】:
const sequelize = require("../config/sequelize");
const Sequelize = require("sequelize");

const Token = sequelize.define('token', {
    token: {
        type: Sequelize.STRING,
        allowNull: false
    },
    createdAt: {
        type: Sequelize.DATE,
        allowNull: false,
        defaultValue: Sequelize.NOW
        expires: 43200
    }
})

我可以像上面的 Sequelize 代码那样添加 expires 选项吗?

【问题讨论】:

  • 那是底层数据库的特性,不是Mongoose本身的特性。您计划在 Sequelize 中使用什么数据库?
  • 我打算将Mysql数据库与Sequelize一起使用。
  • 我不认为 MySQL 内置了类似的功能。但是您也许可以使用他们的Event Scheduler 自己创建它。
  • 好的。谢谢。但是我怎样才能自己创建呢?
  • 您可以使用cron 执行删除查询,例如在您设置的特定时间过期

标签: javascript node.js express mongoose sequelize.js


【解决方案1】:

@ayindesamuel 为什么不直接在 sequelize 模型中创建 tokenExpires 键?此外,包括第三个对象允许您打开时间戳(createdAt 和 updatedAt),这些列将由 sequelize 自动添加。因此您不必手动创建密钥。

const sequelize = require("../config/sequelize");
const Sequelize = require("sequelize");
const Token = sequelize.define('token', {
    token: {
        type: Sequelize.STRING,
        allowNull: false
    },
    tokenExpires : {
        type: Sequelize.DATE,
        defaultValue: Date.now() +  43200
    }
}, { timestamps : true })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多