如何打印续集实例的表名?

时间:2017-02-10 18:45:21

标签: node.js database orm sequelize.js

我想打印出我用sequelize查询的实例的表名:

models.User.findById(id).then(user => {
    console.log('instance type is, ', user.getTableName || user.getType)) // => instance type is, users
}

有没有办法打印出实例的表名?有没有办法打印出实例的型号名称?我搜索了文档,但找不到上面的API。

5 个答案:

答案 0 :(得分:23)

piotrbienias的答案是针对v3,在第4节中你做了:

表名为

user.constructor.getTableName()user.constructor.tableName,型号名称为user.constructor.name

参考:Breaking Changes in V4

我花了一段时间来弄清楚这一点,所以虽然我不会在这里发布,以防有​​人来寻找这个答案。

答案 1 :(得分:14)

表名:user.Model.getTableName()user.Model.tableName

型号名称:user.Model.name

答案 2 :(得分:0)

在版本4

如果model.constructor.name不起作用。您可以尝试

model.name

getTableName

相同

注意:model是一个实例。

答案 3 :(得分:0)

序列化v4

有关表名

user.constructor.getTableName()

很棒。 对于类型(您为.define()作为第一个参数指定的名称),您可以:

user._modelOptions.name.plural
user._modelOptions.name.singular

答案 4 :(得分:0)

续集 V6

把这个留在这里以防有人需要它。

访问模型名称:model.name

访问模型表名:model.tableName

注意:上面使用的 model 是 sequelize 模型的一个实例。