問題タブ [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.js - node-postgresを使用してpostgresにファイルを保存する
node-postgresモジュールを使用して小さなファイルをpostgresデータベースに保存しようとしています。これを行うには、byteaデータ型を使用する必要があることを理解しています。私が抱えている問題は、次のようなことをするときです。
dbのファイル列の内容は\xであり、何も保存されません。データバッファを16進数、つまりdata.toString('hex')に変更すると、ファイルは保存されますが、ファイルを読み戻すとすべてのフォーマットが失われます。
node-postgresモジュールを使用してファイルをpostgresに保存する正しい方法は何ですか?
arrays - node-postgres から plpgsql 関数に配列を渡す
plpgsql 関数:
node-postgres クエリ + テスト配列:
ノードサーバーからの出力:
エラー: エラー: 配列の値は "{" で始まる必要があります または次元情報
結果: 未定義
testarray($1::int[])
また、同じエラーが返されたように、クライアントクエリでパラメーターをキャストしようとしました。
関数の引数を に変更する(anyarray int)
と、出力エラーが変更されました。
エラー: エラー: 整数の入力構文が無効です: "1,2,3,4,5"
結果: 未定義
他のいくつかのバリエーションと同様に。
エラーが発生せず、5 を返すバリエーションを探します。
Postgres parse-array の問題と、node-postgres のパラメーター化された配列に関するこのスタックオーバーフローの質問について読みました。
しかし、答えはそこにはなかったようです。
sql - トランザクションは node-postgres でどのように機能しますか?
node-postgres を使用して、コールバック スタイルで SQL クエリを作成しています。クエリのリストを取り込んでトランザクション ブロック内で実行する関数があります。私の理解では、node-postgres を使用してクエリ「BEGIN」を送信し、トランザクション ブロック内で必要なすべてのクエリを送信してから、クエリ「COMMIT」を送信します。
ただし、クエリは有効ですが (単純な挿入、スタンドアロン クエリとして十分にテストされています)、トランザクション ブロックの後にデータベースの状態をテストすると、すべてが正しい順序で確実に実行されます。矛盾した状態。すべての挿入が行われることもあれば、一部だけが行われることもありました。私の理解では、トランザクションブロックはアトミックであるため、ブロック内の挿入は、コミットの直後に SELECT を使用して検索する際にすべてかゼロである必要があります。
これが私の機能です:
ヘルパー関数 tryQuery を使用:
何がうまくいかないのかについて何か考えはありますか?
node.js - node-postgres Errorとはどのようなオブジェクトですか?ノードのconsole.logとJSON.stringifyが異なる方法で処理するのはなぜですか?
console.logは次のように出力します。
しかし、JSON.stringifyは、エラーの説明部分を認識しません。
{"長さ":86、 "名前": "エラー"、 "重大度": "エラー"、 "コード": "42601"、 "位置": "62"、 "ファイル": "スキャン.l"、 " line ":" 1001 "、" routing ":" scanner_yyerror "}
ウィキ( https://github.com/brianc/node-postgres/wiki/Error-handling、http:// nodejs)を読んで、この「エラー:列「未定義」が存在しません」を取得する方法がわかりません。 ru / doc / v0.4.x / stdio.html#console.log)
コードはこんな感じ、
ありがとう
更新:err.toString()
ショーerror: syntax error at or near "step"
node.js - サーバーでnode-postgresを使用するにはどうすればよいですか?
Postgresデータベースを使用するNode.jsWebサーバーを作成しています。私は次のように新しいリクエストごとに接続していました:
しかし、いくつかのリクエストの後、接続しようとしたときにHerokuで「メモリ不足」エラーが発生したことに気付きました。私のデータベースには10行しかないので、これがどのように発生するのかわかりません。私のデータベースアクセスはすべて次の形式です。
node-postgres
メモリエラーがデータベースへの複数の永続的な接続によるものであると想定して、ファイルの先頭で1回だけ接続するいくつかの例で見たスタイルに切り替えました。
しかし、接続が切断された後にクエリを実行しようとすると、リクエストが(無期限に?)ハングするようになりました。(Postgresサーバーを強制終了して元に戻すことでシミュレートしました。)
では、どうすればこれらの1つを実行できますか?
- Postgres接続を適切にプールして、メモリが不足することなく毎回「再接続」できるようにします。
- ネットワーク障害が発生した後、グローバルクライアントに自動的に再接続させます。
node.js - node-postgres で postgres search_path を設定することは可能ですか?
アプリケーションを RoR から Express.js に移動しています。ActiveRecord postgres アダプターには、search_path 構成オプションがあります。
Client の search_path を設定することは可能ですか?