我使用带有原始查询和引用的sequelizeJs
Users
实例,但返回数据显示所有字段
// require Squelize
const { Sequelize } = require('sequelize'); // i used v6.21.3
// database connection
const sequelize = new Sequelize('my_db', 'my_user', 'my_pass', {
host: 'localhost',
dialect: 'mysql'
});
// Declare Users Instances
const Users = sequelize.define("users", {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
},
username: DataTypes.STRING,
name: DataTypes.STRING,
email: DataTypes.STRING,
});
// Query Get users data
async function getUsers() {
let results = await sql.mysql_first_db.query("select * from users", {
model: Users, // use Users instance
mapToModel: true, // use true for mapped fields
});
// log results
await console.log(results);
}
// call function getUsers
getUsers();
// results
[
{
id: 1,
username: 'ibomb',
password: '2895f6eb811d9ba6c08e6565a7',
name: 'bombkiml',
email: '[email protected]',
family_name: 'ibomb',
middle_name: 'kiml',
given_name: 'kiml',
isActived: '1',
isDeleted: '0',
createdAt: 2024-03-05T06:07:51.000Z,
updatedAt: null
}
]
响应结果为
Raw Query
,而不是参考 Users
实例。
所以,我想要这样的结果。
// Results
[
{
id: 1,
username: 'ibomb',
name: 'bombkiml',
email: '[email protected]',
}
]
请告诉我发生了什么?
感谢您提供解决方案
指定您想要的属性,如下所示:
Model.findAll({
attributes: ['id', 'username', 'name', 'email']
});