【问题标题】:Sequelize: How to add additional model info not in the table/columns?Sequelize:如何添加不在表/列中的其他模型信息?
【发布时间】:2025-12-03 08:55:01
【问题描述】:

我想知道是否有办法使用 Sequelize 添加到模型中,我正在创建一些不需要在数据库中的附加信息。具体来说,我需要将我的一些专栏指定为具有特定标志。我想我可以在某个地方保留一个列表,但我认为如果这个标志是模型的一部分,它会使我的代码更简单。

【问题讨论】:

    标签: node.js sql-server sequelize.js


    【解决方案1】:

    如果您要添加的数据是模型属性,则可以使用如下所示的内容:Model.__additionalInfo = {};。但是您必须小心,因为您可以覆盖静态模型方法。

    如果您要添加的数据是实例属性,那么您可以使用VIRTUAL 数据类型来定义每个模型实例中存在但不存储在数据库中的属性。

    【讨论】:

    • 我会试试的。我想我想添加的数据类型是模型属性。基本上,有些列是“私有的”,有些是“公共的”。有权访问所有数据的用户有时会希望输出“清理”报告,其中私有数据被替换为 * 或 X 或其他内容。那么你认为我可以使用 Model.__additionalInfo 方法添加一个“私人”标志吗?它将应用于给定列的所有行。
    • 您可以添加 Model.prototype.somethingFormatterName 方法,它将根据您的需要格式化您的数据。你知道 MVC 吗?