1

私が望むのは、サーバーの起動中にメインファイル(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モジュールでクラス構造を作成するこの正しいアプローチはありますか??

4

0 に答える 0