2017-01-22 182 views
1

因为在我的API某些限制和因为我喜欢保持信息的全部范围上我的模型结果,我想不过滤我的查询的属性,但我想获得一定的属性从查询返回值后的实例中获取。过滤器Sequelize实例

因此,不是这样的:

User.findById(1, { attributes: ['firstName', 'lastName'] }); 

我想这样做的味道的东西:

const attributes = ['firstName', 'lastName']; 
const user = await User.findById(1); 
const displayUser = user.getAttributes(attributes); 

通过在例如使用在该查询结果本身的一些实例方法(“的getAttributes” ),我想指定应该属于实例的显示值的属性。

我找不到从文件(和做文档的搜索)这样做的任何方法。

这是在所有可能不会对模型定义instanceMethod?

编辑

我也清楚地知道,我可以手动过滤结果,但是这似乎并不喜欢这样做的理想方式。

回答

0

作为解决方案之一,您可以在instanceMethods中定义一个到JSON方法,并指定返回字段的列表。

instanceMethods: { 
    toJSON() { 
     return { 
      firstName: this.firstName, 
      lastName: this.lastName 
     }; 
    } 
} 

在不同的框架outputing的Sequelize实例时,的toJSON默认使用。 只有在您的应用程序显示结果之前(或者为了您)将实例转换为普通对象,它才会起作用。