1つではなく2つのエントリを作成するように続編します

スコット

私は2つのモデルを持っていますpatientpersonalInformation

のような関連付けがありpersonalInformation.belongsTo(patient)ます。私の場合、patient主キーまたはuuidはpersonalInformationテーブルの列として存在します。

APIが単一のPOSTリクエストを受信したら、コントローラーにpatientエントリとpersonalInformationエントリを一緒に作成させるつもりです。

これは私のコントローラーコードです:

// patient.controller.js

const db = require('../../db/databaseConfig');
const Patient = db.patients;
const PersonalInformation = db.personalInformation;
PersonalInformation.Patient = PersonalInformation.belongsTo(Patient);

exports.create = async (req, res) => {
    try {
        let payload = await req.body;
        await console.log('Recevied request: CREATE /api/patients & payload: ', payload);
        let newPatientEntry = Patient.create();
        let newPInfo = await PersonalInformation.create({
            ...payload,
            patient: newPatientEntry
        }, {
            include: [{
                association: PersonalInformation.Patient,
            }]
        });
        res.send(newPInfo);
    } catch (e) {
        console.log('error inside create method Patient controller');
        throw new Error(e);
    }
 };

1x患者エントリと1xpersonalInformationエントリの代わりに、結果は2x患者エントリ1xpersonalInformationになります。personalInformationエントリには、テーブルに患者のuuidがあります(作成された2人の患者の後者)。なぜ2つの患者エントリがあるのか​​わかりません。

関連するnodejsログは次のとおりです。

2018-12-05T01:17:57.644499+00:00 app[web.1]: Executing (default): INSERT INTO "patients" ("uuid","createdAt","updatedAt") VALUES ('89290b66-999d-4f10-96b3-4105a26a9450','2018-12-05 01:17:57.583 +00:00','2018-12-05 01:17:57.583 +00:00') RETURNING *;
2018-12-05T01:17:57.645703+00:00 app[web.1]: Executing (default): INSERT INTO "patients" ("uuid","createdAt","updatedAt") VALUES ('9ed075da-757a-457b-b939-ed7e4c7b523a','2018-12-05 01:17:57.612 +00:00','2018-12-05 01:17:57.612 +00:00') RETURNING *;
2018-12-05T01:17:57.659918+00:00 app[web.1]: Executing (default): INSERT INTO "personalInformations" ("id","nameTitle","nameFirst","nameMiddle","nameLast","nameSuffix","nameAlias","dateOfBirth","sex","gender","occupation","deceased","createdAt","updatedAt","patientUuid") VALUES (DEFAULT,'Mr','Robert','Swan','Mueller','II','Bob','1950-12-15 00:00:00.000 +00:00','Male','Man','Special Counsel','False','2018-12-05 01:17:57.594 +00:00','2018-12-05 01:17:57.594 +00:00','9ed075da-757a-457b-b939-ed7e4c7b523a') RETURNING *;

モデルは次のように構成されています。

// patient.model.js

const uuid = require('uuid/v4');

module.exports = (sequelize, Sequelize) => {
    const Patient = sequelize.define('patient', {
        uuid: {
            primaryKey: true,
            allowNull: false,
            type: Sequelize.UUID,
            defaultValue: () => uuid(),
        }
    });
    return Patient;
};

そして

// personalInformation.model.js

module.exports = (sequelize, Sequelize) => {
    const PersonalInformation = sequelize.define('personalInformation', {
        nameFirst: {
            type: Sequelize.STRING,
            notEmpty: true,
            allowNull: false,
        },
        nameLast: {
            type: Sequelize.STRING,
            notEmpty: true,
            allowNull: false,
        },
        ... etc
        ... etc
    });
    return PersonalInformation;
}
Vivek doshi

はい、2回作成しているため、2つのエントリが作成されます。

let newPatientEntry = Patient.create(); // <----- HERE
let newPInfo = await PersonalInformation.create({
    ...payload,
    patient: newPatientEntry // <----- HERE
}, {
    include: [{
        association: PersonalInformation.Patient,
    }]
});

あなたはこれを試すことができます:

// let newPatientEntry = Patient.create(); // <----- REMOVE THIS
let newPInfo = await PersonalInformation.create({
    ...payload,
    patient: {} //<---- MAKE THIS BLANK
}, {
    include: [{
        association: PersonalInformation.Patient,
    }]
});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Traefikdocker-3つではなく1つのフロントエンドルートのみを作成するように構成します

分類Dev

2つのステートメントの少なくとも1つが常に考慮されるように、マングースクエリを作成するにはどうすればよいですか?

分類Dev

Angularで2つではなく2つのドキュメントを検索しながら1つのサービスリクエストを行うにはどうすればよいですか?

分類Dev

Winston javascript loggerは、2つの別々のログファイルを作成しています。すべてのエントリを1つのファイルに記録するにはどうすればよいですか?

分類Dev

左側のテーブルのすべてのエントリを一覧表示する2つのテーブルを結合したまま、1回だけSQLクエリを作成するにはどうすればよいですか?

分類Dev

2つのSQLクエリに対して1つのMySQLインデックスを作成するにはどうすればよいですか?

分類Dev

2つのドキュメントがありますが、出力を1つのドキュメントとして返すクエリを作成するにはどうすればよいですか。

分類Dev

1つのステートメントで1つはすべて偶数、もう1つはすべてオッズの2つの異なるリストを作成するにはどうすればよいですか?

分類Dev

いくつかのキーを持つキーリングなど、柔軟な接続を作成するにはどうすればよいですか?

分類Dev

他の列に1つまたは同じエントリしかないため、行を削除するにはどうすればよいですか?

分類Dev

2つの無関係なエンティティ(2つのリポジトリ)を1つのプロジェクトで同時に実行するにはどうすればよいですか?出来ますか?

分類Dev

一致するリクエストが1つあると予想され、2つのリクエストが見つかりました。2つのリクエストをテストするにはどうすればよいですか

分類Dev

Perlの2つのファイルで二重エントリを正しく見つけるにはどうすればよいですか?

分類Dev

Angular / RxJsで、1つのバンドルに複数のリクエスト(http:// test / 1、http:// test / 2など)が含まれるようにhttpリクエストをバンドルするにはどうすればよいですか?

分類Dev

2つの異なるRESTAPIエンドポイントを同時に呼び出し、アプリの1つのエンドポイントに両方のデータを表示するにはどうすればよいですか?

分類Dev

新しい構成を作成せずに、2つの異なるソリューションで使用される1つのプロジェクトに異なる#defineを使用するにはどうすればよいですか?

分類Dev

ormは、1回のページ読み込みで2つの異なるテーブルからクエリを続編します

分類Dev

$ .getは1つではなく2つのリクエストを送信します

分類Dev

AuthorizationHandlerが1つではなく2つのリソースを受け入れるようにする

分類Dev

mysqlでカウントを取得するために1つのクエリとしてどのように書くことができますか

分類Dev

2つの編集可能で更新可能なDataGridViewをリストとサブリストにバインドするにはどうすればよいですか?

分類Dev

繰り返しなしでセットのバリエーションを見つけるためのアルゴリズムをC ++で作成するにはどうすればよいですか(つまり、n個の要素、kを選択)?

分類Dev

リモートセッションで2つの頂点の間にエッジを作成しようとすると、NegativeArraySizeExceptionエラーが発生します

分類Dev

setTimeoutを使用して、入力の値を1つではなく2つインクリメントします

分類Dev

2つのViewControllerをストーリーボードの1つのボタンに接続するにはどうすればよいですか?

分類Dev

3次元グリッドを2つの要素で作成します。1つの要素は1つの行に、ランダムな列に1つあります。

分類Dev

少なくとも1つの要素が一致する場合、2つのリストを集約するにはどうすればよいですか?

分類Dev

gitがクローンを作成し、CDを作成し、そのリポジトリをテキストエディタ(atom。)ですべて1つに開くbashエイリアスを作成するための適切な構文は何ですか?

分類Dev

1つのリクエストに収まらないアドレスがある場合、マンドリルに送信するメールアドレスのリストを作成するにはどうすればよいですか。

Related 関連記事

  1. 1

    Traefikdocker-3つではなく1つのフロントエンドルートのみを作成するように構成します

  2. 2

    2つのステートメントの少なくとも1つが常に考慮されるように、マングースクエリを作成するにはどうすればよいですか?

  3. 3

    Angularで2つではなく2つのドキュメントを検索しながら1つのサービスリクエストを行うにはどうすればよいですか?

  4. 4

    Winston javascript loggerは、2つの別々のログファイルを作成しています。すべてのエントリを1つのファイルに記録するにはどうすればよいですか?

  5. 5

    左側のテーブルのすべてのエントリを一覧表示する2つのテーブルを結合したまま、1回だけSQLクエリを作成するにはどうすればよいですか?

  6. 6

    2つのSQLクエリに対して1つのMySQLインデックスを作成するにはどうすればよいですか?

  7. 7

    2つのドキュメントがありますが、出力を1つのドキュメントとして返すクエリを作成するにはどうすればよいですか。

  8. 8

    1つのステートメントで1つはすべて偶数、もう1つはすべてオッズの2つの異なるリストを作成するにはどうすればよいですか?

  9. 9

    いくつかのキーを持つキーリングなど、柔軟な接続を作成するにはどうすればよいですか?

  10. 10

    他の列に1つまたは同じエントリしかないため、行を削除するにはどうすればよいですか?

  11. 11

    2つの無関係なエンティティ(2つのリポジトリ)を1つのプロジェクトで同時に実行するにはどうすればよいですか?出来ますか?

  12. 12

    一致するリクエストが1つあると予想され、2つのリクエストが見つかりました。2つのリクエストをテストするにはどうすればよいですか

  13. 13

    Perlの2つのファイルで二重エントリを正しく見つけるにはどうすればよいですか?

  14. 14

    Angular / RxJsで、1つのバンドルに複数のリクエスト(http:// test / 1、http:// test / 2など)が含まれるようにhttpリクエストをバンドルするにはどうすればよいですか?

  15. 15

    2つの異なるRESTAPIエンドポイントを同時に呼び出し、アプリの1つのエンドポイントに両方のデータを表示するにはどうすればよいですか?

  16. 16

    新しい構成を作成せずに、2つの異なるソリューションで使用される1つのプロジェクトに異なる#defineを使用するにはどうすればよいですか?

  17. 17

    ormは、1回のページ読み込みで2つの異なるテーブルからクエリを続編します

  18. 18

    $ .getは1つではなく2つのリクエストを送信します

  19. 19

    AuthorizationHandlerが1つではなく2つのリソースを受け入れるようにする

  20. 20

    mysqlでカウントを取得するために1つのクエリとしてどのように書くことができますか

  21. 21

    2つの編集可能で更新可能なDataGridViewをリストとサブリストにバインドするにはどうすればよいですか?

  22. 22

    繰り返しなしでセットのバリエーションを見つけるためのアルゴリズムをC ++で作成するにはどうすればよいですか(つまり、n個の要素、kを選択)?

  23. 23

    リモートセッションで2つの頂点の間にエッジを作成しようとすると、NegativeArraySizeExceptionエラーが発生します

  24. 24

    setTimeoutを使用して、入力の値を1つではなく2つインクリメントします

  25. 25

    2つのViewControllerをストーリーボードの1つのボタンに接続するにはどうすればよいですか?

  26. 26

    3次元グリッドを2つの要素で作成します。1つの要素は1つの行に、ランダムな列に1つあります。

  27. 27

    少なくとも1つの要素が一致する場合、2つのリストを集約するにはどうすればよいですか?

  28. 28

    gitがクローンを作成し、CDを作成し、そのリポジトリをテキストエディタ(atom。)ですべて1つに開くbashエイリアスを作成するための適切な構文は何ですか?

  29. 29

    1つのリクエストに収まらないアドレスがある場合、マンドリルに送信するメールアドレスのリストを作成するにはどうすればよいですか。

ホットタグ

アーカイブ