4

Express と node-postgres ( https://github.com/brianc/node-postgres )を使用してノード アプリケーションを構築しています。db クライアント接続を 1 回だけ構築したいのですが、この db 接続に別のモジュールからアクセスできるようにしたいと考えています。これを行う最善の方法は何ですか?Express アプリ全体ではなく、db 接続のみをエクスポートしようとしています。基本的に、ノード アプリケーション全体でオブジェクトをエクスポートしてアクセスするための最良の方法は何ですか?

この同様の質問を確認しましたが、マングースに固有のようです。

データベース接続パラメータをmongoose/node.jsと共有する最良の方法

4

3 に答える 3

5

「最善の方法」というものはありません。異なるモジュール間で同じオブジェクトを使用する必要がある場合は、それをモジュールにラップする必要があります。このようなもの:

//db.js
var postgres = require (...)
var connection;

module.exports = {
  getConnection: function (){
    return connection;
  },
  createConnection: function (){
    connection = createConnection (postgress);
  }
};

//app.js - main file
require ("./db").createConnection ();

//a.js
var db = require("./db")
db.getConnection()

//b.js
var db = require("./db")
db.getConnection()
于 2013-04-17T06:37:33.637 に答える
-1

あなたはそのようなことをすることができます..

//db.js
var pg = require('pg'); 

var conString = "tcp://postgres:1234@localhost/postgres";

module.exports.connectDatabase = function(callback){
var client = new pg.Client(conString);
client.connect(function(err) {
  if(err){
     console.log(err);
     process.exit(1);
  }

  module.exports.client = client;
  callback();
})

//app.js
// We are trying to connect to database at the start of our app and if it fails we exit       the process
var db = require('./db');
db.connectDatabase(function(){
  // your other code
})

//a.js
var db = require('./db');
//you can access your client here to perform database operations like that
db.client
于 2013-04-17T11:19:31.350 に答える