使用Sequelize(NodeJS)而不是*来指定特定的字段

好吧,所以我在NodeJS中有一个项目,我正在使用Sequelize来创buildMySQL ORM。 这个东西很奇妙,但是我试图弄清楚是否有一种方法可以指定在查询的基础上返回哪些字段,或者甚至是在某处执行.query()的方法。

例如在我们的用户数据库中,可能会有大量的logging和列。 在这种情况下,我只需要返回三列,所以只能得到那些列会更快。 但是,Sequelize只是查询表格中的所有内容“*”,以尽可能完整地实现对象模型。 这是我想在应用程序的这个特定区域中绕过的function。

您必须将属性指定为传递给findAll()的对象中的属性:

Project.findAll({attributes: ['name', 'age']}).on('success', function (projects) { console.log(projects); }); 

我如何find这个:

查询首先在这里调用: https : //github.com/sdepold/sequelize/blob/master/lib/model-definition.js#L131
然后在这里构build: https : //github.com/sdepold/sequelize/blob/master/lib/connectors/mysql/query-generator.js#L56-59

试试这个版本

  template.findAll({ where: { user_id: req.params.user_id //array }, attributes: ['id', 'template_name'], //object }).then(function (list) { res.status(200).json(list); })