1

我想要的只是在服务器启动时在主文件(main.js)中进行 1 次配置......并在不同的文件(conn1.js,conn2.js)中多次使用该类的方法......

我正在制作一个在使用“使用严格”时不起作用的 npm 模块。但是如果我在删除“使用严格”的同时使用全局变量,它工作正常..

我已经定义了一个这样的类..

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