問題タブ [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.
javascript - Node.js:node-ormでテーブルを選択して結合する方法は?
私のmysqlデータベースには2つのテーブルがOwners
あり、Pets
. node.js とnode-ormを使用してデータベースにアクセスしています。茶色のペットを飼っている飼い主を選びたいのですが、やり方がわかりません。
これは私が運が悪かったことです:
エラーがないため、pets
テーブル/列は存在しますが (存在しない列名を使用するとエラーが発生します)、クエリにはまったく影響しません。これは可能node-orm
ですか?そうでない場合、どの orm を使用すればよいですか?
javascript - Node と MySQL - 「接続が多すぎる」問題の解決
MySQLデータベースを使用して、Node.jsおよびExpressでアプリケーションを実行しています。私が使用しているドライバーはnode-orm2です。ユーザーから「接続が多すぎます」というエラーが報告され続けています。問題を診断しましたが、修正方法がわかりません。
基本的に何が起こっているかというと、新しいユーザーがサイトにアクセスするたびに、ドライバーが新しいスレッド/プロセスを作成します。データベースでクエリを実行するSHOW PROCESSLIST
と、そこにTime
ofが表示され0
ます。
ユーザーがデータベースを必要とする別のアクションを実行すると、同じスレッドが再利用され、Time
に戻り0
ます。ただし、そうでない場合、スレッドは存続し (Command
のSleep
)、Time
ラックアップします。データベースの最大接続制限は250
で、タイムアウトは7200
です。
基本的に、2 時間以内に 250 人を超えるユーザーがサイトを使用すると、「接続が多すぎます」というエラーが表示されます。
接続プールを使用してみましたが、問題が悪化しました。新しいユーザーがデータベースを使用するたびに、10 個のスレッドが作成され、7200 秒のタイムアウトに達すると、スレッドが再生成されました。
ここにはどのようなオプションがありますか?
私の現在の方法では、30 分ごとにスケジュールされたジョブを実行して、長時間開いていたスレッドを閉じていますが、もっと良い方法はありますか?
次の設定を使用しています。
node.js - nodeorm のモデルのモデル ID を取得します
NodeJS の nodeorm2 (sqlite) を使用して、このようないくつかのモデルを「作成」して、私の Web サイトのデータベースにサンプル データを入力します。
これらの操作は非同期です。それらが終了したら、「作成」したばかりのモデルの子モデルも追加したいと思います。
myModel と subModels の間の関係は、次のように定義されます。
サブモデルも追加できるように、作成したモデルの ID を取得するにはどうすればよいですか? 「検索」を使用して、新しく作成されたモデルの DB を検索できます。ただし、指定した順序でモデルが作成されるとは限りません。
php/mysql では、これを実現するために mysql_insert_id() を使用します。SQL で同等のものは last_insert_id() です。
編集: コールバック関数で、id にアクセスできます。
ただし、この ID は両方のコールバック関数で同じです。わかりません。異なる名前の属性を持つ別のコールバック関数を作成しても、id は同じです。
node.js - NodeJS で node-orm2 を使用して複数のデータベース エントリを作成する
NodeJS (高速) アプリで定義したデータベースにいくつかのオブジェクトを保存したいと考えています。データベース モジュールは node-orm2 で、データベースは SQLite です。
出力は次のとおりです。
しかし、私はそれが次のようになることを期待しています(または別の順序で):
私は何を間違っていますか?他の方法でモデルを作成しようとしましたが、save メソッドも試しました。同じ結果が得られます。
データベースを見ると、期待される ID (1、2、3) を持つ 3 つの行が追加されていることがわかります。では、node-orm2 が正しい ID を返さないのはなぜでしょうか? データベースにオブジェクトを追加するには、この ID を使用する必要があります。
mysql - MySQL KILL - プロセスはすぐに再生成されます
スリープ状態が長すぎるプロセスを強制終了する Cron ジョブを作成しました。ただし、プロセスを強制終了すると、すぐに再生成されます。これらのプロセスを再起動しているのは何ですか? MySQLの設定ですか?
私が使用しているコードは次のとおりです。
node.js - データベースにクエリを実行するときに応答するのは正しい方法ですか?
node-orm2 で Express と MySql を使用しています。
データベースからデータを取得するための GET リクエストがあります。
出力関数を loginFormChecker に渡し、クエリ データのコールバックで呼び出します。
それが正しい方法かどうかはわかりません。より良い方法はありますか、おそらく約束か何かですか?
ありがとう。
node.js - NPM ORM - hasOne フィールドの更新を保存
アプリケーションで特定の役割を持つ人がいるセットアップがあります。
私は次のモデルを持っています
特定の役割を持つ新しい人を作成すると、すべてが正常に機能し、役割が割り当てられます。
役割を持つ新しいユーザーを作成する
テンプレート
コントローラ
しかし、1 つのエントリを更新しようとすると、変更されたすべてのフィールドが更新されますrole_id
。
役割を持つ既存のユーザーを更新する
テンプレート
コントローラ
role_id
フィールドを更新するときにも正しいものを受け取ります。更新で他の属性を保存することは機能しますが、これrole_id
は単に私が理解できない人の属性であるため、なぜこれがうまくいかないのでしょうか。さらにコードが必要な場合は、教えてください。私は今のところ本当に立ち往生しています。誰かが同じことを経験しましたか?
編集:intにキャストしようとしましたが、何も変わりませんでしたperson.role_id = parseInt(req.body.role);
node.js - Postger 空間インデックス用の Nodejs ORM (PostGIS など)
Postgres は、PostGIS またはその他の Gist を使用した空間インデックス作成 (top-k-closest-points) の良さから、最適な DB です。Node.js ORM は空間インデックスを直接サポートしていないようですが、これに必要なハッキングが最も少ないのはどれですか? Sequelize と node-orm-2 を機能させるには、いくつかのハッキングが必要なようです。助言がありますか?