【发布时间】:2017-08-22 12:49:12
【问题描述】:
你在做什么?
我有一个用户模型和一个卡片模型。它们通过自定义表“favouriteCards”相互关联。现在我想选择用户的所有卡片favourited,并按createdAt字段排序。
models.user.belongsToMany(models.card, {
through: 'favouriteCards'
});
models.card.belongsToMany(models.user, {
through: 'favouriteCards',
scope: {
status: 'active'
}
});
我正在编写这段代码来获取用户拥有的所有卡片:-
this.database.user.findById(userId).then((user: any) => {
user.getCards({
attributes: ['id', 'storyId', 'mediaUri', 'mediaType', 'externalLink']
})
.then((cards: Array<any>) => {
if (cards.length) {
return Promise.resolve(cards);
} else {
throw 'No favourite cards';
}
}).then((cards: Array<any>) => {
return reply({
"cards": cards
});
}).catch((err) => {
console.log(err);
return reply(Boom.notFound("User doesn't have any favourite card"));
});
});
实际发生了什么?
现在,在输出中,我得到一个密钥 favouriteCards。我不想在输出中使用这个键。另外,我想根据favouriteCards 的createdAt 列过滤我的结果。
输出 JSON
"cards": [
{
"id": 1,
"storyId": 3,
"mediaUri": "http://localhost/api/docs#!/admin/postStory",
"mediaType": "image",
"favouriteCards": {
"createdAt": "2017-08-05T11:45:29.000Z",
"updatedAt": "2017-08-05T11:45:29.000Z",
"cardId": 1,
"userId": 1
}
}
]
【问题讨论】:
标签: node.js sequelize.js hapijs