私はbookshelfとknexを使ってPostgreSQLデータベースに接続しています。私は1対1の関係を持つデータを検索しようとしています。ブックシェルフを使用して1対多のオブジェクトを出力する方法js
表::私のデータベースは、このようになりますアスリート
|----------------------------|
| id | firstname | lastname |
|----------------------------|
| 0 | john | doe |
| 1 | jane | doe |
|----------------------------|
表:アクティビティマイ本棚モデルは次のようになり
|------------------------------------|
| id | athlete_id | type | distance |
|------------------------------------|
| 0 | 1 | run | 5 |
| 1 | 0 | walk | 7 |
|------------------------------------|
:
const Athlete = bookshelf.Model.extend({
tableName: 'athlete',
activities: function() {
return this.hasMany('Activity', 'athlete_id');
}
});
const Activity = bookshelf.Model.extend({
tableName: 'activity',
athlete: function() {
return this.belongsTo('Athlete');
}
});
その後、私はActivity.fetchAll().then(...)
これは私がそれを返すようにしたいどのような
[
{
"id": "0",
"athlete_id": "1",
"type": "run",
"distance": "5",
},
{
"id": "1",
"athlete_id": "0",
"type": "walk",
"distance": "7",
}
]
返すことは、私はこれを見つけた
[
{
"id": "0",
"athlete": {
"athlete_id": "1",
"firstname": "jane",
"lastname": "doe"
},
"type": "run",
"distance": "5",
},
{
"id": "1",
"athlete": {
"athlete_id": "0",
"firstname": "john"
"lastname": "doe"
},
"type": "walk",
"distance": "7",
}
]
です:Activity.fetch({withRelated: 'athlete'}).then(...)
が、それはメッセージなしで私のために500エラーを返します。
ネストされたオブジェクトを返すのに役立つ必要があります。
おかげで、私はまだ '[]' – Derekedelaney
@Derekedelaneyと同じエラーを取得しています:私はあなたの
fetch()
コードにcatch節を追加することをお勧めします、何かのようにこれだけのためですか? –これがエラーの原因だと私は信じています。 'fetchAll()'を使うことはできません。私の関係はすべて台無しだと思うし、本棚は私から何かを見逃していると思う。私はそれが何であるか分かりません。 – Derekedelaney