問題タブ [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.

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

postgresql - postgres への接続が閉じられ、「このソケットは閉じられています」というエラー メッセージが表示される

node.js 0.6.12 に移行していますが、pg モジュール (バージョン 0.6.14) を使用すると、次のエラー メッセージが表示されます。

私のコードで示されている行は次のとおりです。

これはノード 0.4.8 と gp 0.5.0 で正常に動作していましたが、現在は動作しません。移行をテストしています。

ネットでこのようなエラーをいくつか見ましたが、答えはありません。

アップデート

これは、postgres 接続の処理方法に関連しているようです。今日、アプリを実行するときに単一の接続を作成します。リクエストごとに新しい接続を作成する方が良いと思います。高速ミドルウェアで接続を作成するための最良の解決策はありますか?

0 投票する
7 に答える
14269 参照

postgresql - Heroku PostgreSQL データベースへの接続時の認証エラー

PostgreSQL を使用し、Heroku でホストする Node.js アプリケーションを開発しています。私の問題は、次のような認証エラーが発生することです。

SSL の問題である可能性がありますが、ここに記載されているようにはなりません。SSL はすぐにサポートされる必要があります。だから私は困惑していて、このエラーの原因は何ですか?

システムで pg_hba.conf を編集する必要があるかどうかはわかりませんが、見つけることさえできません。

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

node.js - node-postgresはデータを挿入しませんが、エラーもスローしません

node.jsにnode-postgresモジュールを使用していますが、データの挿入に問題があります。

関数:

データベースに新しいデータは表示されません。query.on('error')およびquery.on('end')イベントが発生することはありません。考えてみると、クエリがトリガーされているのかどうか疑問に思い始めています(なぜトリガーされるべきでないのかわかりません)。

私が取得する唯一のログは次のとおりです。

では、これをデバッグするにはどうすればよいですか?

0 投票する
7 に答える
57036 参照

node.js - node-postgres: "WHERE col IN ()」クエリ?

次のようなクエリを実行しようとしています。

問題は、フィルター処理する ID のリストが一定ではなく、実行ごとに異なる必要があることです。ソースの信頼性に関係なく、実際にはクエリに含まれるすべてのものをエスケープしますが、信頼できないソースからのものである可能性があるため、ID もエスケープする必要があります。

node-postgres は、バインドされたパラメーターでのみ機能するようです: client.query('SELECT * FROM table WHERE id = $1', [ id ]); これは、既知の数の値 ( ) があれば機能しますが、配列パラメーターの特別な処理がないように見えるためclient.query('SELECT * FROM table WHERE id IN ($1, $2, $3)', [ id1, id2, id3 ])、配列を直接操作することはできません。client.query('SELECT * FROM table WHERE id IN ($1)', [ arrayOfIds ])

配列内のアイテムの数に応じてクエリ テンプレートを動的に構築し、ids 配列をクエリ パラメーター配列 (私の実際のケースでは、id のリスト以外のパラメーターも含まれています) に拡張することは、不当に負担がかかるようです。node-postgres は値のエスケープ メソッドを提供しないため、クエリ テンプレートで ID のリストをハードコーディングすることも実行可能ではないようです。

これは非常に一般的な使用例のように思われるので、実際には何かを見落としていると思いますがIN (values)、node-postgres で一般的な SQL 演算子を使用できないというわけではありません。

私が上に挙げた方法よりも洗練された方法でこの問題を解決した人がいる場合、または node-postgres について本当に何かが足りない場合は、助けてください。

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

postgresql - node.js と PostgreSQL および socket.io エラー: ソケットは書き込み可能ではありません

私は socket.io をいじってみましたが、うまく機能しているようです。しかし最近、イベントが発生するたびにデータベースに行を挿入するためにpostgreSQLをインストールしました(そして、イベントは毎秒2〜3回発生します!)...ここにスニペットがあります:

次のエラーが表示されます。

問題の原因とそれを修正する方法についてのアイデアはありますか?

postrgreSQL に次のライブラリを使用しています https://github.com/brianc/node-postgres

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

postgresql - node-postgresを設定する方法は?

Apache2.0(Windowsマシン上)で実行されているPostgreSQL、php5があります。

特定のテーブル行が更新されたときに、クライアントのブラウザに更新をプッシュできるようにしたい。私はこのhttps://github.com/brianc/node-postgresに出くわしました

  1. サーバー側で何をどのように設定しますか?
  2. node-postgresをインストール/セットアップするにはどうすればよいですか?
  3. node-postgresは、私がすでにnode.jsを使用していると想定していますか、それとも完全なパッケージですか?
  4. 指定されたテーブルが更新されたときにクライアントブラウザメッセージを送信するにはどうすればよいですか?

始めるには方向性が必要です!ありがとう :)

0 投票する
3 に答える
1367 参照

postgresql - ユーザーのブラウザに node-postgres を実装する方法は?

そこで、ローカルマシンでこの特定の例をテストしました。

出来た!したがって、特定のテーブルを更新し、(チュートリアルから) node.js ファイルを実行すると、ターミナル (mac) ですぐに通知が届きます!! いいね!

しかし、これをクライアントのブラウザに実装するにはどうすればよいですか??

まず、node.js スクリプトで、ユーザー名とパスワードを使用してデータベースに接続する必要があることに気付くでしょう。

ユーザーのブラウザーがダウンロードした .js ファイルにそれを浮かび上がらせることは明らかにできません。

さらに、どのスクリプトを に含める必要があるかさえわかりません<head>。これが現実の世界でどのように使用されているかについては、どこにも何も見つかりません....私が見るのは、コマンドラインで使用できるきちんとした小さな例だけです。

正しい方向へのアドバイスやガイダンスは素晴らしいでしょう! ありがとう。

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

node.js - node-postgres の「イベント エミッタ スタイル」と「コールバック スタイル」

node-postgresは次のように述べています。

node-postgres は、「イベント エミッター」スタイルの API と「コールバック」スタイルの両方をサポートしています。コールバック スタイルはより簡潔で一般的に好まれますが、イベント API が便利です。それらは混合して一致させることができます。

イベント エミッター API を使用すると、次のことができます。

そして、 を使用dbして、Web アプリ全体でクエリを実行できますdb.query('sql statement here')。コールバック スタイルでは、クエリを実行するたびに次のようにします。

だから私の質問は、コールバックスタイルを使用することが「一般的に好まれる」のはなぜですか? データベースで何かをするたびに接続を開くのは非効率的ではありませんか? コールバック スタイルを使用する利点は何ですか?

編集

「コールバック スタイル」とは何を意味しているのか誤解されているかもしれませんが (冗談ではありません。私の JavaScript はあまり強力ではありません)、私の質問は接続方法に関するものです。以下がコールバック スタイルの接続方法であると仮定しました。

以下は、EventEmitter API の接続方法です。

ここで用語が混同されているだけなら、私の質問はまだ残っています。pg.connect(do queries)使用するたびに新しい接続を開きます(そうではありませんか?)一方、

接続を開き、client必要に応じてクエリを実行できるようにしますか?

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

node.js - node-postgresは複数の結果セットをサポートしていますか

複数の結果セットを返すPostgresQL関数があります。これらの結果セットを.netで問題なく抽出できますが(関数が正しく機能することがわかります)、node-postgresで抽出するのに問題があります。

結果オブジェクトは、返されたデータセットの数と一致する7つのアイテムの配列を返します。

ノードでは、7つの行のそれぞれに。の文字列が含まれているだけです<unnamed portal 1>

つまり、node-postgresは複数の結果セットをサポートしていますか?サポートされている場合は、抽出方法に関する提案はありますか?

編集:これは私がnode-postgresで使用したコードです。将来誰かがそれを使用する必要がある場合に備えて。

0 投票する
3 に答える
9960 参照

node.js - node-postgres:クエリを実行せずにステートメントを準備する方法は?

node-postgres モジュールを使用して、postgres で「準備済みステートメント」を作成したいと考えています。バインドはループで行われるため、パラメーターにバインドせずに作成したい。

ドキュメントで私が読んだ:

私は試した

しかし、構成オブジェクトでテキストと名前のキーのみを渡そうとすると、例外が発生します:

(翻訳済み) メッセージは 0 個のパラメータをバインドしていますが、準備されたステートメントは 1 個を期待しています

私が欠けているものはありますか?ループのすべてのステップでステートメントを再準備することを避けるために、特定の値にバインドせずにステートメントを作成/準備するにはどうすればよいですか?