問題タブ [node-postgres]
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.
node-postgres - node-postgres .connect() がエラーを返した場合、done() は必要ですか?
ドキュメントから、プールからクライアントを取得する際に問題があった場合、err is not null のように聞こえます。その場合、done() を呼び出す必要がないということですか?
また
javascript - node-postgres エラー オブジェクトの最初の「プロパティ」
障害のあるクエリのエラー オブジェクトにある最初の疑似プロパティを知っている人はいますか? console.log('' + error);
括弧内のテキストを取得して表示します。それ以外は、そのプロパティを参照する方法がわかりません。
node.js - 大量のクエリを含む node-postgres
node-postgresを使用して、postgresでnode.jsをいじり始めました。私がやろうとしたことの 1 つは、約 200,000 エントリのファイルを使用して、短い js を記述してデータベースにデータを入力することです。
しばらくすると (10 秒以内)、「エラー: 接続が終了しました」というメッセージが表示されるようになりました。これが node-postgres の使い方に問題があるのか、それとも postgres をスパムしていたからなのかはわかりません。
とにかく、この動作を示す簡単なコードを次に示します。
約 18,000 ~ 20,000 回のクエリの後で失敗します。これは client.query の使い方が間違っていますか? デフォルトのクライアント番号を変更してみましたが、うまくいきませんでした。
client.connect() も役に立たないようですが、それは私があまりにも多くのクライアントを持っていたためだったので、クライアントプーリングが最善の方法だと思います.
助けてくれてありがとう!
node.js - ノード pg ライブラリの自動コミットと明示的なコミット
Node pg を使用して、Postgres データベースに接続して使用しています。ノード js から Postgres 関数を使用して、更新を挿入したり、データを取得したりします。また、接続プーリングを使用して DB への接続を取得します。
- ノード PG を使用する場合、挿入クエリを起動するとします。コミットを呼び出す必要がありますか、それとも自動コミットですか。
- また、ノードからデータを変更する関数を呼び出す場合は、コミットを明示的に呼び出す必要があります。
- ライブラリを使用すると、すべての呼び出しでコミットを呼び出すよりも優れたことができるかどうか疑問に思っていました。
- これは、中間のセーブ ポイントなどを含む複雑なトランザクションに関するものではなく、基本的な完全なコミットに関するものではないことに注意してください。
postgresql - pgplsqlからnode-postgresにエラーを返す唯一の方法は「例外を発生させる」ですか?
たとえば、何かを返すpgplsql 関数 (例buyItem
: 購入したアイテムのパラメーター) があるとします。場合によっては、何かがうまくいかなかったことを示して、結果が空であることを示したい場合があります (たとえば、目的のアイテムを購入するのに十分なお金がないなど)。これは単なる通常の結果であり、私はそれを例外とは呼びません (そして、db サーバーでそれに関するエラーを出力することは絶対にありませんraise exception
)。
問題は、そのようなケースを処理するためのベスト プラクティスは何かということです。
node.js - node-postgres: パラメータ化された挿入クエリがキャッシュされ、2 回目の実行で失敗する
node-postgresを使用して 2 つのパラメーター化された挿入クエリを実行しようとしています。1 つ目は主キー列を指定し、2 つ目は指定しません。
2 番目のクエリは、主キー列を指定していませんが、主キーが重複していると言って失敗します。
私のpgテーブル:
この問題を再現するコード:
そして、これを実行した出力:
ソースを読んで収集したことにnode-postgres
よると、パラメーター化されたクエリは準備済みクエリとして扱われ、name
パラメーターを再利用するとキャッシュされます。ソースを掘り下げてみると、私のクエリに name プロパティがあるとは思えません。
これを回避する方法について誰かアイデアがありますか?