在 Sequelize 中,我们可以通过定义实体属性的默认值来避免在创建实体时遗漏必要的属性,或者是给实体属性提供一个默认值。本文将介绍 Sequelize 中如何定义实体属性的默认值。
定义默认值
在 Sequelize 中,我们可以通过在实体定义中的属性中添加 defaultValue
属性来定义实体属性的默认值。例如,我们可以定义一个 User
实体,其中 createdAt
属性的默认值为当前时间:
const User = sequelize.define('user', { // ... createdAt: { type: DataTypes.DATE, defaultValue: Sequelize.NOW } // ... });
在上面的例子中,我们使用了 Sequelize.NOW
来指定 createdAt
的默认值为当前时间。除此之外,我们还可以使用其他的默认值,例如:
Sequelize.UUIDV1
:使用 UUID v1 生成器生成 UUID,基于时间戳和 MAC 地址。Sequelize.UUIDV4
:使用 UUID v4 生成器生成 UUID,基于随机数。Sequelize.NOW
:使用当前时间作为默认值,适用于DATE
和DATEONLY
类型。Sequelize.fn
:使用 Sequelize 函数作为默认值,例如Sequelize.fn('NOW')
。
自定义默认值
除了使用 Sequelize 提供的默认值之外,我们还可以使用自定义函数来为实体属性定义默认值。例如,我们可以定义一个 Post
实体,其中 slug
属性的默认值是基于 title
属性生成的:
-- -------------------- ---- ------- ----- ---- - ------------------------ - -- --- ------ - ----- ----------------- ---------- ----- -- ----- - ----- ----------------- ------------- ---------- - ------ ---------------------------------------- ----- - - -- --- ---展开代码
在上面的例子中,我们定义了一个匿名函数作为 slug
属性的默认值。这个函数会将 title
属性转换为小写,并将空格替换为短横线,然后作为默认值返回。
指导意义
定义实体属性的默认值是 Sequelize 中一个非常有用的功能,它可以帮助我们避免在创建实体时遗漏必要的属性,或者是给实体属性提供一个默认值。在实际开发中,我们可以根据具体业务需求来定义不同的默认值,从而提高代码的可读性和可维护性。
示例代码
下面是一个完整的示例代码,演示了如何在 Sequelize 中定义实体属性的默认值:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - --- --------------------- ----------- ----------- - -------- --------- -------- ------------- --- ----- --------- - -------------------- ----- ---- - ------------------------ - --- - ----- ------------------ ----------- ----- -------------- ---- -- ----- - ----- ----------------- ---------- ----- -- ------ - ----- ----------------- ---------- ------ ------- ---- -- ---------- - ----- --------------- ------------- ------------- - --- ----- ---- - ------------------------ - --- - ----- ------------------ ----------- ----- -------------- ---- -- ------ - ----- ----------------- ---------- ----- -- -------- - ----- --------------- ---------- ----- -- ----- - ----- ----------------- ------------- ---------- - ------ ---------------------------------------- ----- - - --- ---------------- -------- -- - ------ ------------- ----- ----- ----- ------ ---------------------- --- -- ------------ -- - --------------------------- ------ ------------- ------ ------ ------- -------- ----- -- -- ----- ------ --- -- ------------ -- - --------------------------- -- -------------- -- - --------------------- ---展开代码
在上面的示例代码中,我们定义了一个 User
实体和一个 Post
实体,并为它们的属性定义了默认值。在运行示例代码时,Sequelize 会自动创建数据库,并将实体和属性映射到数据库表和列中。最后,我们通过调用 create
方法来创建实体,并将实体属性的值传递给方法中。创建成功后,我们可以通过调用 toJSON
方法来获取实体的 JSON 表示。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c9125fe46428fe9e00e9b4