Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 如何使节点导出正常工作?_Javascript_Node.js - Fatal编程技术网

Javascript 如何使节点导出正常工作?

Javascript 如何使节点导出正常工作?,javascript,node.js,Javascript,Node.js,这里是Noob节点…正在尝试导出并要求 我有一个名为GoogleHomePage.js的Javascript文件,其中包含以下代码: var GoogleHomePage = function (){ module.exports.Home = function () { var homepage = "http://www.google.com"; browser.get(homepage); } } 然后我想使用另一个名为FileB.js的

这里是Noob节点…正在尝试导出并要求

我有一个名为GoogleHomePage.js的Javascript文件,其中包含以下代码:

var GoogleHomePage = function (){
    module.exports.Home = function () {
        var homepage = "http://www.google.com";
        browser.get(homepage);

    }
}
然后我想使用另一个名为FileB.js的文件中的require,如下所示:

var g = require("./GoogleHomePage.js");
g.Home();
当运行g.Home()时,我会得到未定义的。。。然而,当我在调试器中查看g时,我可以看到它有一个名为Home的函数

如果我在控制台窗口中键入g.Home,它会显示功能代码


如何让g.Home()执行?发生这种情况是因为没有g对象,例如var x=new g()还是var x=new GoogleHomePage()。请尝试以下方法:

GoogleHomePage.js:

module.exports = function() {
    var homepage = "http://www.google.com";
    browser.get(homepage);

}
module.exports = {
  Home: function() {
    var homepage = "http://www.google.com";
    browser.get(homepage);
  },

  SomethingElse: function() {
    // ...
  }
};
FileB.js

var googleHomePage = require("./GoogleHomePage.js");
googleHomePage();
因此,直接导出函数——不需要将其包装在奇怪的
var GoogleHomePage=function(){…}
构造中

如果要在
谷歌主页
中导出多个内容,可以导出具有如下属性的对象:

GoogleHomePage.js:

module.exports = function() {
    var homepage = "http://www.google.com";
    browser.get(homepage);

}
module.exports = {
  Home: function() {
    var homepage = "http://www.google.com";
    browser.get(homepage);
  },

  SomethingElse: function() {
    // ...
  }
};
那么FileB.js看起来像:

var googleHomePage = require("./GoogleHomePage.js");
googleHomePage.Home();
或者你可以:

var home = require("./GoogleHomePage.js").Home;
home();
而不是

var GoogleHomePage = function (){
    module.exports.Home = function () {
        var homepage = "http://www.google.com";
        browser.get(homepage);

    }
}
你想要

module.exports = function () {
    var homepage = "http://www.google.com";
    browser.get(homepage);
}
module
是相关模块的局部变量,
exports
是该对象的属性。函数
GoogleHomePage
在您的代码中永远不会被调用,因此您的作业永远不会运行

当您需要模块时,只需执行以下操作

var g = require('./GoogleHomePage');
g();

.js
是不必要的。

什么意思你没有定义?为什么你要在另一个函数中设置
Home
。@thefortheye我没有尝试在另一个函数中设置Home,我正在尝试从另一个文件调用它,以便浏览器可以导航到…“我没有尝试在另一个函数中设置Home”但那正是你在做的。删除该代码段的第一行和最后一行。第一个代码段位于文件1中,第二个代码段位于文件2中。如何从file2调用file1.Home?这是我的问题。。。我肯定我做了一些不正确的事情,或者可能没有…谢谢!让我试一试。@JohnPeters你可以通过谷歌搜索“nodejscommonjs”了解更多信息。例如,或者