简体   繁体   English

Sequelize 使用对象类型创建模型

[英]Sequelize create model with object type

Is this possible to create model with sequelize to look like:是否可以使用 sequelize 创建模型,如下所示:

var User = sequelize.define('User', {
    username: DataTypes.STRING,
    email: DataTypes.STRING,
    password: DataTypes.STRING,
    facebook: {
      id: DataTypes.STRING,
      token: DataTypes.STRING,
      email: DataTypes.STRING,
      name: DataTypes.STRING
    },
})


Idea is: When i will get user data from DB i would like to see User: { facebook: { id, token, ... } }想法是:当我从数据库中获取用户数据时,我希望看到 User: { facebook: { id, token, ... } }

No. 没有。

Either

  1. you make User.facebook a DataType.JSON field (which is supported by postgresql only) 您将User.facebookDataType.JSON字段(仅User.facebook支持)
  2. you create an Entity 'facebook', which is 1:1 related to User 您创建一个实体“ facebook”,与用户的比例为1:1

Option i) is fine, but you don't get any support from sequelize to check integrity and validity if you make it a json field. 选项i)很好,但是如果将其设为json字段,则不会从sequelize获得任何支持来检查完整性和有效性。

Column dataType - TEXT save as JSON format after find table - return json patse text列数据类型 - 查找表后 TEXT 保存为 JSON 格式 - 返回 json patse 文本

 PodPodMaterial.afterFind(async (material) => { if(material.length) { for(let mat in material) { try { material[mat].ez_kolvo = JSON.parse(material[mat].ez_kolvo) } catch(e) {console.error(e)} } } else { try { material.ez_kolvo = JSON.stringify(material.ez_kolvo) }catch(e) {console.error(e)} } return material })

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM