- include를 통해 얻은 객체는 nested 되어 있어서 그것을 flat하게 바꾸려면 raw:true 옵션 추가해주면 됨
const newsList = await News.findAll({
attributes: ['no', 'writer', 'title', 'viewCnt', 'createdAt'],
order: [['created_at', 'DESC']],
offset: (page - 1) * size,
limit : size,
include : [{
model: NewsCategory,
attributes: ['name'],
where : {
name: category,
}
}],
raw: true,
}, );
/*
{
"no": 2,
"writer": "작성자",
"title": "제목2",
"viewCnt": 0,
"createdAt": "2022-10-23T12:27:40.000Z",
"NewsCategory.name": "general"
},
*/
- 또는, 더 정확한 방법은 sequelize.col을 사용
const newsList = await News.findAll({
attributes: ['no', 'writer', 'title', 'viewCnt',
'createdAt', [sequelize.col('NewsCategory.name'), 'name']],
order: [['created_at', 'DESC']],
offset: (page - 1) * size,
limit : size,
include : [{
model: NewsCategory,
attributes: [],
where : {
name: category,
}
}],
});
/*
{
"no": 2,
"writer": "작성자",
"title": "제목2",
"viewCnt": 0,
"createdAt": "2022-10-23T12:27:40.000Z",
"name": "general"
},
*/
let admin = await Admin.scope("withPassword").findOne({
where: sequelize.where(
sequelize.fn("BINARY", sequelize.col("Admin.email")),
req.body.email
),
attributes: {
include: [
[sequelize.col('organization.id'), 'organizationId'],
[sequelize.col('organization.name'), 'organizationName']
]
},
include: [{
model: Organization,
attributes: [],
as: "organization"
}],
// raw: true
});
/*
"admin": {
"id": 47,
"email": "rlfrmsdh@lguplus.co.kr",
"name": "길근오1",
"phone": "01011112221",
"type": "ADMIN",
"createdAt": "2023-04-27T09:11:04.000Z",
"updatedAt": "2023-05-16T06:31:40.000Z",
"passwordSetAt": "2023-05-15T05:24:52.000Z",
"description": null,
"passwordTryCount": 0,
"organizationId": 1,
"organizationName": "UPLUS"
}
*/