2017-05-08 8 views
0

NodeJSにPostgreSQLプールを接続して正しく行う方法を理解できません。私はルータでエクスプレスを使用しています、すべてのハンドラは別のファイルに配置されています。誰もがDB接続で別のファイルを作成し、各ソースコードファイルでそれを「要求」するよう勧めます。 app.useなどでこのプールに接続できますか?私のハンドラはすべて、各ユーザの要求に対して常にDB接続を使用します。PostgreSQLをNodeJSに正しく接続する方法は?

+0

:http://mherman.org/blog/2016/03/13/designing-a-restful-api-with-node-and-postgres/ –

+0

@あなたは私の質問を読んだのですか?私は他の解決策を求めています。この解決策は悪いものであり、実際には使用することはお勧めしません –

+0

問題の説明はあまりにも曖昧で、問題の性質を理解することは不可能です。プラス質問のタイトルは誤解を招く。私はあなたの質問を再考して、それ以上のことを尋ねることを提案します;) –

答えて

0

私は、以下の例があなたに言い聞かせるものであると確信しています。これは、postgresのプーリングを利用しています。

ファイルごとに2つの技術的に必要な、技術的に簡単な別の方法がある場合は、それを聞いてみたいです。その後

"use strict"; 

const url = require('url'); 
const pg = require('pg'); 

const params = url.parse("postgres://username:[email protected]/database"); 
const auth = params.auth.split(':'); 

const config = { 
    user: auth[0], 
    password: auth[1], 
    host: params.hostname, 
    port: params.port, 
    database: params.pathname.split('/')[1] 
}; 

const pool = new pg.Pool(config); 

const DB = { 
    query: function(query, callback) { 
     pool.connect((err, client, done) => { 
      if(err) return callback(err) 
      client.query(query, (err, results) => { 
       done() 
       if(err) { console.error("ERROR: ", err) } 
       if(err) { return callback(err) } 
       callback(null, results.rows) 
      }) 
     }); 
    } 
} 

どこでもあなたはあなただけの全体の接続プーリング法をペースト/コピーの代わりに以下の数行を使用するデータベースを照会したい:

必要なquerydbファイルの例。

これは役立つはず使用例

const queryDB = require("../queryDB.js"); 

... 
let query = "SELECT * FROM table;" 
queryDB.query(query, (err, results) => { 
    // Handle err/results 
}) 
関連する問題