在Node.js中导出新对象
如何将变量端口、主机、数据库传递到此函数中 //myjs.js在Node.js中导出新对象,node.js,Node.js,如何将变量端口、主机、数据库传递到此函数中 //myjs.js var redisCaller = function(port,host,database){ }; module.exports = new redisCaller(); 如果我这样做: var myjs = require('./myjs'); 如何传递这些变量 看来唯一的办法是这样的: module.exports = function(port,host,database){ return new redi
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);
}
将myjs.js更改为:
module.exports=redisCaller代码>
然后你可以做:
var myjs=require('./myjs')(端口、主机、数据库)代码>将myjs.js更改为:
module.exports=redisCaller代码>
然后你可以做:
var myjs=require('./myjs')(端口、主机、数据库)代码>您不需要
您设置代码的方式使得不可能传入变量,除非您调整所需的参数。这样,您就可能需要了解在其中使用的任何文件中的端口/主机/数据库
相反,可能只是使用一个“init”
例如,app.js-
var redisCaller = require('./myjs');
redisCaller.init(port, host, database);
还有MyJ
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();
它的代码要多一点,但至少它很容易跨文件重用。。假设这是你的意图。你没有
您设置代码的方式使得不可能传入变量,除非您调整所需的参数。这样,您就可能需要了解在其中使用的任何文件中的端口/主机/数据库
相反,可能只是使用一个“init”
例如,app.js-
var redisCaller = require('./myjs');
redisCaller.init(port, host, database);
还有MyJ
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();
它的代码要多一点,但至少它很容易跨文件重用。。假设这是您的意图。@AlexMills您可能不希望每次需要模块时都返回一个新的呼叫。或者你是这样做的?是的,你是对的,对于一个单身汉来说,你希望总是返回同一个对象,我会更改标题这在我尝试时看起来不正确,我在OP中所做的编辑确实有效though@AlexMills不过,您可能不希望每次需要模块时都返回一个新的
调用。或者你是这样做的?是的,你是对的,对于一个单身汉来说,你希望总是返回同一个对象,我会更改标题。当我尝试时,标题看起来不正确,我在OP中所做的编辑确实有效,但请看我的编辑和Tony的答案,我想你可以调整它使其更容易工作。但是你的答案也会有用。请看我的编辑和Tony的答案,我认为你可以调整它使其更容易工作。但你的答案也会起作用。