如何将变量port,host,database传递给此函数?
// myjs.js
var redisCaller = function(port,host,database){
};
module.exports = new redisCaller();
如果我这样做:
var myjs = require('./myjs');
如何传递这些变量?
似乎唯一的方法就是这样:
module.exports = function(port,host,database){
return new redisCaller(port,host,database);
}
答案 0 :(得分:3)
将myjs.js更改为:
module.exports = redisCaller;
然后你可以这样做:
var myjs = require('./myjs')(port,host,database);
答案 1 :(得分:1)
你没有。
您设置该代码的方式使得无法传递变量,除非您调整require。然后,您可能需要了解您在其中使用的任何文件中的端口/主机/数据库。
相反,也许只使用'init'。
例如,app.js -
var redisCaller = require('./myjs');
redisCaller.init(port, host, database);
和myjs ..
var redisCaller = function(){
this.init = function (port,host,database) {
this.connection = ...
}
this.getConnection = function () {
if(!this.connection) { throw "Need to run init first"; }
return this.connection;
}
};
module.exports = new redisCaller();
您需要连接的任何地方......
var redisCaller = require('./myjs');
var conn = redisCaller.getConnection();
//or
var redisCaller = require('./myjs').getConnection();
这是一些代码,但至少可以轻松地跨文件重用..假设这是你的意图。