2 回答

TA貢獻1860條經驗 獲得超8個贊
findAll()是一個異步函數,它返回一個Promise。您需要使用.then()來獲得結果并在那里執行轉換。
db.SalesRep.findAll({
attributes: ['id', 'name', 'email'],
include: [{
model: db.Customers,
as: 'customers',
}],
where: {'id': "1"},
order: orderClause,
offset,
limit,
}).then(function(users) {
let sales_rep = users.sales_rep;
for (let key in sales_rep) {
sales_rep[key].customers = sales_rep[key].customers.length;
}
// do more stuff with users
});

TA貢獻1856條經驗 獲得超5個贊
let data = {
"sales_rep": {
"1": {
"id": 1,
"name": "Joe",
"email": "[email protected]",
"customers": [
{
"id": 1,
"address": "1 High Street",
"name": "CUSTOMER1",
"supplierId": 1,
},
{
"id": 2,
"address": "2 High Street",
"name": "CUSTOMER2",
"supplierId": 1,
},
{
"id": 3,
"address": "3 High Street",
"name": "CUSTOMER3",
"supplierId": 1
},
]
}
}
}
let customerCount = data.sales_rep['1'].customers.length
Object.assign(data.sales_rep['1'], { customers: customerCount})
console.log(data)
db.SalesRep.findAll方法是重現承諾,因此您可以await用來獲取結果
let users = await db.SalesRep.findAll({
attributes: ['id', 'name', 'email'],
include: [{
model: db.Customers,
as: 'customers',
}],
where: {'id': "1"},
order: orderClause,
offset,
limit,
})
let sales_rep = users.sales_rep;
for (let key in sales_rep) {
sales_rep[key].customers = sales_rep[key].customers.length;
}
添加回答
舉報