問題タブ [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 に答える
2396 参照

javascript - Node.js:node-ormでテーブルを選択して結合する方法は?

私のmysqlデータベースには2つのテーブルがOwnersあり、Pets. node.js とnode-ormを使用してデータベースにアクセスしています。茶色のペットを飼っている飼い主を選びたいのですが、やり方がわかりません。

これは私が運が悪かったことです:

エラーがないため、petsテーブル/列は存在しますが (存在しない列名を使用するとエラーが発生します)、クエリにはまったく影響しません。これは可能node-ormですか?そうでない場合、どの orm を使用すればよいですか?

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

javascript - Node と MySQL - 「接続が多すぎる」問題の解決

MySQLデータベースを使用して、Node.jsおよびExpressでアプリケーションを実行しています。私が使用しているドライバーはnode-orm2です。ユーザーから「接続が多すぎます」というエラーが報告され続けています。問題を診断しましたが、修正方法がわかりません。

基本的に何が起こっているかというと、新しいユーザーがサイトにアクセスするたびに、ドライバーが新しいスレッド/プロセスを作成します。データベースでクエリを実行するSHOW PROCESSLISTと、そこにTimeofが表示され0ます。

ユーザーがデータベースを必要とする別のアクションを実行すると、同じスレッドが再利用されTimeに戻り0ます。ただし、そうでない場合、スレッドは存続し (CommandSleep)、Timeラックアップします。データベースの最大接続制限は250で、タイムアウトは7200です。

基本的に、2 時間以内に 250 人を超えるユーザーがサイトを使用すると、「接続が多すぎます」というエラーが表示されます。

接続プールを使用してみましたが、問題が悪化しました。新しいユーザーがデータベースを使用するたびに、10 個のスレッドが作成され、7200 秒のタイムアウトに達すると、スレッドが再生成されました。

ここにはどのようなオプションがありますか?

私の現在の方法では、30 分ごとにスケジュールされたジョブを実行して、長時間開いていたスレッドを閉じていますが、もっと良い方法はありますか?

次の設定を使用しています。

0 投票する
0 に答える
153 参照

node.js - nodeorm のモデルのモデル ID を取得します

NodeJS の nodeorm2 (sqlite) を使用して、このようないくつかのモデルを「作成」して、私の Web サイトのデータベースにサンプル データを入力します。

これらの操作は非同期です。それらが終了したら、「作成」したばかりのモデルの子モデルも追加したいと思います。

myModel と subModels の間の関係は、次のように定義されます。

サブモデルも追加できるように、作成したモデルの ID を取得するにはどうすればよいですか? 「検索」を使用して、新しく作成されたモデルの DB を検索できます。ただし、指定した順序でモデルが作成されるとは限りません。

php/mysql では、これを実現するために mysql_insert_id() を使用します。SQL で同等のものは last_insert_id() です。

編集: コールバック関数で、id にアクセスできます。

ただし、この ID は両方のコールバック関数で同じです。わかりません。異なる名前の属性を持つ別のコールバック関数を作成しても、id は同じです。

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

node.js - NodeJS で node-orm2 を使用して複数のデータベース エントリを作成する

NodeJS (高速) アプリで定義したデータベースにいくつかのオブジェクトを保存したいと考えています。データベース モジュールは node-orm2 で、データベースは SQLite です。

出力は次のとおりです。

しかし、私はそれが次のようになることを期待しています(または別の順序で):

私は何を間違っていますか?他の方法でモデルを作成しようとしましたが、save メソッドも試しました。同じ結果が得られます。

データベースを見ると、期待される ID (1、2、3) を持つ 3 つの行が追加されていることがわかります。では、node-orm2 が正しい ID を返さないのはなぜでしょうか? データベースにオブジェクトを追加するには、この ID を使用する必要があります。

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

mysql - MySQL KILL - プロセスはすぐに再生成されます

スリープ状態が長すぎるプロセスを強制終了する Cron ジョブを作成しました。ただし、プロセスを強制終了すると、すぐに再生成されます。これらのプロセスを再起動しているのは何ですか? MySQLの設定ですか?

私が使用しているコードは次のとおりです。

0 投票する
0 に答える
60 参照

node.js - データベースにクエリを実行するときに応答するのは正しい方法ですか?

node-orm2 で Express と MySql を使用しています。

データベースからデータを取得するための GET リクエストがあります。

出力関数を loginFormChecker に渡し、クエリ データのコールバックで呼び出します。

それが正しい方法かどうかはわかりません。より良い方法はありますか、おそらく約束か何かですか?

ありがとう。

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

node.js - NPM ORM - hasOne フィールドの更新を保存

アプリケーションで特定の役割を持つ人がいるセットアップがあります。

私は次のモデルを持っています

特定の役割を持つ新しい人を作成すると、すべてが正常に機能し、役割が割り当てられます。

役割を持つ新しいユーザーを作成する

テンプレート

コントローラ

しかし、1 つのエントリを更新しようとすると、変更されたすべてのフィールドが更新されますrole_id

役割を持つ既存のユーザーを更新する

テンプレート

コントローラ

role_idフィールドを更新するときにも正しいものを受け取ります。更新で他の属性を保存することは機能しますが、これrole_idは単に私が理解できない人の属性であるため、なぜこれがうまくいかないのでしょうか。さらにコードが必要な場合は、教えてください。私は今のところ本当に立ち往生しています。誰かが同じことを経験しましたか?

編集:intにキャストしようとしましたが、何も変わりませんでしたperson.role_id = parseInt(req.body.role);

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

javascript - node-orm で各関数を同期的に呼び出す方法はありますか?

node-orm2 の非同期動作に問題があります。次のようなクエリがあります。

私の問題は、内部で発生することpost.getMagic()は非同期であるため、コールバック関数がdoMagic終了する前に実行されることです。ソース コードを確認したところ、これは正常な動作であることが確認されましたが、これはエクスプレス アプリであるため、サーバーが間違った情報を返します。

waitforgetMagicを使用して同期への呼び出しを試みましたが、成功しませんでした。これはおそらく私が見逃しているものです。each関数を同期関数のように機能させる方法はありmapますか?

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

node.js - Postger 空間インデックス用の Nodejs ORM (PostGIS など)

Postgres は、PostGIS またはその他の Gist を使用した空間インデックス作成 (top-k-closest-points) の良さから、最適な DB です。Node.js ORM は空間インデックスを直接サポートしていないようですが、これに必要なハッキングが最も少ないのはどれですか? Sequelize と node-orm-2 を機能させるには、いくつかのハッキングが必要なようです。助言がありますか?