在node.js中导出函数

时间:2015-08-13 16:14:48

标签: javascript node.js selenium automation

我使用nodejs和webdriver进行自动化测试。我试图将一个函数从一个js文件导出到另一个。例如,在文件abc.js下有一个名为abc的函数,我想将该函数与其他名为xyz.js的文件一起使用。我尝试使用export和require但它导出并运行整个测试(abc.js)而不仅仅是一个函数。

//abc.js 
console.log('print this'); 
client= function client() {
driver.get(baseUrl + '/#/login'); 
};
exports.client = client;
//xyz.js
var client1 = require('abc.js').client();

2 个答案:

答案 0 :(得分:1)

首次要求使用模块会导致模块被缓存并执行其代码,这就是为什么您会看到"打印此模块的原因。"登录。下次您致电client功能时,您不应该看到它。

这与问题无关,但仍然在xyz.js文件中,因为您的函数没有返回任何可以使用的内容:

require('abc.js').client();

而不是:

var client1 = require('abc.js').client();

在你的abc.js中,不需要命名函数,你可以使用:

var client = function() {
   ...
};

答案 1 :(得分:1)

试一试

function abc(){
console.log('print this');
this.client= function client() {
driver.get(baseUrl + '/#/login');
};
return this;
}
module.exports  = abc;
//xyz.js
var abc = require('abc.js')();
abc.client();

在nodejs中封装对象时的一个好习惯