2017-06-22 1 views
0

私は、両方ともKnexを介して接続しているFeathersjsでPostgresSQLデータベースを使用しています。データベーステーブル(NewTable)は、ユーザーサービスを参照する外部キーを使用して作成されました。FeathersjsはAPIを通じて外部キー値を取得します

次に、データベーステーブルについて説明します。

私はGETでクエリを実行するときにownerId(整数)の外部キー値を受け取ります。

export function load(id) { 
    return { 
    types: [LOAD, LOAD_SUCCESS, LOAD_FAIL], 
    promise: ({ app }) => app.service('NewTable').get(id) 
    }; 
} 

GET APIを介して代わりのuserIdのユーザーのfirst_name列を取得するための適切な方法は何ですか?

first_name列を取得するには、NewTableサービスのフック内で別のGET APIを実行する必要がありますか、それとももっと簡単な方法がありますか?

答えて

0

feathersjsのフック内に以下のような関数を作成します。

function populateUser() { 
    return populate({ 
    schema: { 
     include: [{ 
     nameAs: 'sentBy', 
     service: 'users', 
     parentField: 'ownerId', 
     childField: 'id' 
     }] 
    } 
    }); 
} 

GETの後に呼び出すには、フック内で使用します。ユーザーサービスの列は応答内に含まれます。

after: { 
    all: [], 
    find: [], 
    get: [ 
    populateUser(), 
    } 
    ], 
    create: [], 
    update: [], 
    patch: [], 
    remove: [] 
}, 
関連する問題