Sequelize。正确的方法来填充数据并从输出中删除键?

时间:2017-09-28 10:19:36

标签: node.js sequelize.js

如何从find*中删除某些模型字段(如密码,令牌)? 我认为覆盖toJSON()函数(比如这里https://stackoverflow.com/a/27979695/6119618)不是一个好方法,因为我有时需要这个字段用于密码验证或令牌用于检查等。
像猫鼬一样有.select('+token')之类的东西吗?

另一个问题我认为这适合这个话题。 如何从through输出中删除由find*字段生成的内容? 当我致电User.find()时,它会回复{ id: 0, name: 'somename', UserProjectsTie: { /* complex object of many-to-many relation table */ } }

1 个答案:

答案 0 :(得分:0)

从find *:

中排除属性
"F2"

要将此设置为默认行为,请使用scope

Model.findAll({
  attributes: { exclude: ['baz'] }
});

除非我误解了'通过'应该只在使用' include'时显示。在这种情况下摆脱:

const Model = sequelize.define('Model', {
  // Attributes
}, {
  defaultScope: {
    attributes: { exclude: ['baz'] }
  }
});