問題タブ [pg-promise]
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 - nodejs - ネストされた promise で読み取ったファイルを「約束する」のに役立ちます
そのため、私は最近、プロミスと、JavaScript の非同期動作によるプロミスの背後にある目的を理解しようとしています。私は理解していると「思っています」が、何かを約束して将来の値を返し、新しいコードブロックを実行して何か他のことをする方法にまだ苦労しています。私が使用している2つの主要なノードモジュール:
- pg-約束
- エクセルズ
私がやりたいのは、ファイルを読み取り、完全に読み取ったら、DB コマンドを実行する各ワークシートを繰り返すことです。次に、すべてのワークシートが処理されたら、戻って、私が読んだ元のファイルを削除します。これが私が持っているコードです。 複数のワークシートがある場合でも、すべてがデータベースに正常に書き込まれるまで機能しています。私が取り組んでいないのは、すべてのワークシートが完全に処理されたときにそれを識別し、ファイルを削除するように設定することです
言えるようになりたい
しかし、約束の中に約束があると、私は非常に混乱します..私は、基本的に.eachSheet関数内にネストされた約束であるdb.tx呼び出しを持っています。愚かなプログラマーが理解できるように助けてください!これで何時間も壁に頭をぶつけてきました。:)
postgresql - 別のデータベース挿入に使用するためにデータベース挿入からシリアル主キーを返す方法
私は postgresql で高速生成されたテンプレートを使用しており、委託品の作成と追跡のための 2 つの残りのルート メソッドがあります。ただし、貨物の挿入ごとに追跡を更新したいのですが、そのためにはシリアルの主キーが必要です。したがって、createCon 関数から、挿入後に ID を返し、createConTracking の cid フィールドに使用する必要があります。
routes/index.js ファイル
クエリ.js
DB
node.js - nodejs pgpromise - 大規模なトランザクションの使用を支援する
nodejs アプリで pgpromise を使用しています。私が行っていることの 1 つは、10000 を超える多くのレコードをアップサートすることです。私がこれを行っていた元の方法は、db.tx を使用してバッチを返すことです。このアプローチの唯一の問題は、1 つは時間がかかること、2 つは大量の Promise を配列にロードし、大量のメモリを消費することです。
これが私が現在していることです...
このアプローチは機能しますが、データの大きなワークシートを取得すると、非常に遅くなります。
私はつまずいて使用しsequence
ましたが、それがどのように機能するかを理解するのに苦労しています. ドキュメントによると、そのように使用するように記載されています..
ワークシート内のデータへの「ソース」関数のアクセスを許可する方法がわかりません。ソース関数の「データ」パラメータはどこから来るのですか? ワークシート obj をソース関数に渡すことはできないようです。
むしろ、シーケンスアプローチを試してみたいのですが、SQLを含むクエリファイルにアクセスする方法と、このシーケンス関数を使用してワークシートを反復処理する方法がわかりません...
編集:したがって、Vitalyがシーケンスについて書いたことを読み、githubの問題を見た後、私が思いついたのは次のとおりです。
ただし、問題は、「ソース」関数内で、すべての変数が範囲外であることです。しかし、私が見た限りでは、その理由はよくわかりません。デバッグ中、それらは「使用できません」とだけ表示されます。
node.js - Nodejs アプリケーションの node-postgres と pg-promise の比較
Postgresql をバックエンドとして Nodejs アプリケーションを構築します。Sequelize のような ORM は、ドキュメンテーションが貧弱で、パフォーマンスの問題があるため、またはその他の ORMを使用するつもりはありません。ORMはアンチパターンです。
この点でnode-postgresとpg-promiseが候補であることがわかりました。したがって、node-postgres が 2010 年から開発され、pg-promise が 2015 年から開発されていれば、どのツールが他のツールよりも優れているか、またはどのツールが説明に適しているかを誰でも明確にすることができます。
node.js - テキストを pg-promise のデータに置き換える
を使用して、文字列内の一部のテキストをデータベースの値に置き換えたいと考えていますpg-promise
。これまでPromiseを使用したことがないため、これをどのように処理するのが最善かについて苦労しています。
同期プログラミングと非同期プログラミングを組み合わせようとすると、これまでに試したことは機能しません。
r
当然のことながら、空の文字列です。データベースからの値を「待機」するようにこのブロックを書き換える方法はありますか?
私がやろうとしているのは、ユーザーに送信されるメッセージのプレースホルダーを置き換えることです。したがって、上記は呼び出された関数の一部であり、socket.ioprepareMessage
を使用してユーザーにメッセージを送信するので、次のようになります。
io.to(socket.id).emit('message', { text: prepareMessage(msg) });
node.js - pg-promise を使用したネストされたクエリ オブジェクトのマッピング
メソッドmapの pg-promiseの例を見ていきます。
Event
エンティティが eg と 1 対多の関係にあり、それぞれに接続されているCars
すべてを一覧表示したいとします。必要なオブジェクトが 1 レベル以上の深さである場合、どのようにmap関数を使用できますか?cars
event
私が望む結果は次のようになります。