私が望むのは、サーバーの起動中にメインファイル(main.js)で1回構成することです...そして、そのクラスのメソッドを異なるファイル(conn1.js、conn2.js)で複数回使用します...
「use strict」を使用しているときに機能しない npm モジュールを作成しています。しかし、「use strict」を削除しながらグローバル変数を使用すると、正常に動作します..
私はこのようなクラスを定義しました..
index.js
'use strict';
var pg = require('pg'),_ = require('lodash');
function PgAdaptor(options) {
options = options || {};
options.user = options.user ;
options.password = options.password ;
options.host = options.host || "localhost";
options.port = options.port || 5432;
options.database = options.database || 'postgres';
this.connectionString = "postgres://"+options.user+":"+options.password+"@"+options.host+":"+options.port+"/"+options.database;
this.options = options;
this.getConnection = function (callback) {
console.log("Establishing connection with postgre");
pg.connect(this.connectionString, callback);
}
}
_.extend(PgAdaptor.prototype, {
getCon : function(callback){
this.getConnection(function(error, result) {
if (error) {
console.log("Error in connection : " + error);
callback(error);
} else {
console.log("Got connection for executing query");
callback(null, result);
}
});
}
})
function pgadaptor (options) {
return new PgAdaptor(options);
}
module.exports = pgadaptor;
今、私はこのようにメインファイルで上記のクラスを使用しています...
main.js
'use strict';
pgadaptor = require('pgadaptor')({
user : "postgres",
password : "passpass",
database : "test"
});
このメインファイルを一度だけ設定したい。そして、多くのファイルでgetConメソッドを使用したいと考えています。
conn1.js
'use strict';
require('pgadaptor').getCon(function(err,res){
if(err){
console.log("ERROR!!")
}
console.log("SUCCESS!!")
})
conn2.js
'use strict';
require('pgadaptor').getCon(function(err,res){
if(err){
console.log("ERROR!!")
}
console.log("SUCCESS!!")
})
npmモジュールでクラス構造を作成するこの正しいアプローチはありますか??