問題タブ [node-orm2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
782 参照

node.js - node-orm2 の REFERENCE KEY

私は node.js に基づいて REST API に取り組んでおり、postgresqlデータを保存するデータベースを選択しました。このデータベースに と の 2 つのテーブル名があるUserとしCommentます。AnyCommentは One に属してUserおり、 an を削除する場合はUser、そのCommentの を削除する必要があります。そこで、次のようにテーブルを設計しました。

しかし、私はこのコードを実行せず、node-orm2代わりに使用します。この単純なコードを処理するために、2 つの単純なモデルを設計しました。

データベースをこれらのモデルと同期します:

ここで、user_id が存在しないユーザーに属する新しいコメントを挿入したいと思います。したがって、モデルはこれを受け入れ、行をテーブルCommentに挿入します。comment

私の質問は、どうすれば次のようなことを行うことができますREFERENCE KEYON UPDATE CASCADE ON DELETE CASCADE?

前もって感謝します :)

0 投票する
2 に答える
1927 参照

node.js - Node.js orm2 - OneToMany 関係で新しい関連付けを取得する際の問題

私は node-orm2 で遊んで、RESTful API で使用するのがどのようなものかを感じています。バックエンドで Postgres データベースを使用しています。

Person と Task の間に OneToMany 関係があり、単一のファイルで次のようなドキュメントのバリエーションを試しています。

app.js

次のリソースの GET および POST ルートを設定しました。

  • {GET,POST} /人

  • {GET,POST} /タスク

DB の初期ロード時に、DB に何かを入れるためだけにタスクを持つ Person インスタンスを作成します。

localhost:4730/peopleでGETを実行すると、ロード時に作成された人物とそのタスクを取得できます (すばらしい):

localhost:4730/tasksでGETを実行すると、期待どおりに戻ります。

さて、ここに私の問題の始まりがあります:

ペイロードを使用してlocalhost:4730/tasksPOSTを実行すると、次のようになります。

そして、localhost:4730/tasksで新たにGETを実行すると、期待どおりの結果が得られます。

ここで、localhost:4730/peopleで新たにGETを実行すると、person_id 1 (Kenny Powers) に割り当てられた 2 つのタスクが表示されることが期待されますが、残念ながら、関連付けは多側では登録されているようですが、関係の片側では登録されていないようです。 :

私が間違っている可能性のあるドキュメントから解決することはできません。誰かが同様の問題を経験しましたか?

ありがとう。

0 投票する
1 に答える
344 参照

node.js - Node Orm2 トランザクション プラグイン

ノード orm2 で (postgresql を使用して) トランザクション プラグインを使用する方法に問題があるようです。トランザクションが非同期関数呼び出しでどのように機能するかを誤解していると思います。これが私のコードの例です:

このコードを実行すると、console.log の出力が次のように表示されることがあります。

これは、私が予想した順序の逆です。行に加えた変更はデータベースに保存されません。ここで非同期関数呼び出しに問題があるようですが、ノード orm2 トランザクション プラグインのドキュメントに従っていただけです。

誰が私が間違っているのか知っていますか? ありがとう!