Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在node.js中导出函数_Javascript_Node.js_Selenium_Automation - Fatal编程技术网

Javascript 在node.js中导出函数

Javascript 在node.js中导出函数,javascript,node.js,selenium,automation,Javascript,Node.js,Selenium,Automation,我正在使用nodejs和webdriver进行自动化测试。我正在尝试将函数从一个js文件导出到另一个js文件。e、 g文件abc.js下有一个名为abc的函数,我想将该函数用于另一个名为xyz.js的文件。我尝试使用export和require,但它导出并运行整个测试(abc.js),而不仅仅是一个函数 //abc.js console.log('print this'); client= function client() { driver.get(baseUrl + '/#/login'

我正在使用nodejs和webdriver进行自动化测试。我正在尝试将函数从一个js文件导出到另一个js文件。e、 g文件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();

第一次需要一个模块会导致缓存该模块并执行其代码,这就是您看到“打印此”日志的原因。下次调用
客户端
函数时,您不应该看到它

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

require('abc.js').client();
而不是:

var client1 = require('abc.js').client();
在您的abc.js中,不需要命名函数,您只需使用:

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

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中封装对象是一个很好的实践

…代码在哪里?请将其编辑到问题中。很难按照您的格式阅读。@AaronDufour好的,我格式化了代码,我尝试了多次,但仍然看到“打印此”日志,即使它超出了导出函数的范围。还有其他想法吗?…同样,当您第一次需要一个模块时,所有函数之外的代码都会被执行,在本例中是您的日志。这种行为是意料之中的。我想我是糊涂了。当你说第一次需要一个模块时,你的确切意思是什么?我是node.js的新手。