javascript - 忽略 SailsJS 中 1 个特定模型的默认模型属性

标签 javascript node.js sails.js

大家好,我一直坚持使用 mysql 数据库的特定表的模型。我在 SailsJS 应用程序中使用 2 个不同的数据库。这两个数据库之一是在 SailsJS 应用程序之前创建的,因此该数据库中的表没有在 config/models.js 中配置的默认属性。 例如,当我尝试在使用旧数据库的模型上调用 find() 函数时,这会导致错误,因为它缺少一列。请参阅以下错误:

: ER_BAD_FIELD_ERROR: Unknown column 'tbl_user.deleted' in 'field list'

我不想将默认属性添加到旧数据库列,那么是否可以忽略 config/models.js 中针对特定模型配置的默认属性?

最佳答案

在尝试了一些事情之后,我想出了以下解决方案。 只需将默认属性添加到您的模型中,但将其添加为函数。

module.exports = {
connection: connection,
migrate: 'safe',
tableName: 'tbl_name',
autoCreatedAt: false,
autoUpdatedAt: false,
autoPK: false,
schema: true,

attributes: {
    id: {
        columnName: 'id',
        type: 'string',
        primaryKey: true
    },
    name: {
        columnName: 'name',
        type: 'string'
    },
    email: {
        columnName: 'email',
        type: 'string'
    },
    deleted: function(){
        var obj = this.toObject();
        delete obj.deleted;
        return obj;

    },

    createdBy: function(){
        var obj = this.toObject();
        delete obj.createdBy;
        return obj;

    }
}
};

在此示例中,deleted 和createdBy 属性是config/models.js 中的默认属性。我在特定模型中制作了这些属性的函数。在此函数中,我删除此属性并返回没有删除属性的对象。

关于javascript - 忽略 SailsJS 中 1 个特定模型的默认模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37807449/

相关文章:

node.js - 无法从 session 存储中获取 session

javascript - express ,使用不同进口的相同路线?

node.js - 新的 Sails.js 应用程序在 Heroku 中获得无限重定向

sails.js - 在 Sails JS 响应中看不到 Id

Javascript 如何将纯文本中的日期接收到公式中

javascript - JSON 键名中哪些字符有效/无效?

javascript - 如何在 Node.js 中 fork 进程以从父级可用的缓冲区而不是从文件运行 JS 代码?

JavaScript 对象文字方法 : Recursive call

javascript - 在 php 中,在 Node js 中获取值

parameters - 将参数传递给sails.js 策略