Javascript 使用require访问另一个文件中Node.js中立即调用的函数表达式变量

Javascript 使用require访问另一个文件中Node.js中立即调用的函数表达式变量,javascript,html,node.js,node-modules,Javascript,Html,Node.js,Node Modules,文件1-Monitor.js var MONITOR = (function () { // File Content return { doThing: function() { doThing(); } }; })(); 文件2-Test.js var monitor=require('../public/js/monitor.js') 我想访问文件2中的doThing()。我尝试过各种语法,但到目前为止运气不佳 从前端HTML中,我可以简单地将Monitor.js包含

文件1-Monitor.js

var MONITOR = (function () {

// File Content

return {
  doThing: function() {
    doThing();
  }
};
})();
文件2-Test.js

var monitor=require('../public/js/monitor.js')

我想访问文件2中的
doThing()
。我尝试过各种语法,但到目前为止运气不佳

从前端HTML中,我可以简单地将Monitor.js包含在脚本标记中,并调用
Monitor.doThing()没有问题,但在Test.js中,这很困难


有什么建议吗?

您必须导出监视器,以便其他人可以使用
require()
访问它

添加以下内容:

module.exports = MONITOR;
在Monitor.js的底部


而且,如果希望
monitor.doThing()
方法返回一些值,则必须向函数中添加
return
语句,如下所示:

var MONITOR = (function () {

// File Content

return {
  doThing: function() {
    return "hello";
  }
};
})();

您必须导出
监视器
,以便其他人可以使用
require()
访问它。在MONITOR.js的底部添加
module.exports=MONITOR
。@jfriend00-这几乎可以工作了,我现在可以访问文件2中的“MONITOR”,当我在文件2中打印MONITOR时,它会返回我的方法。但是当我实际调用这些方法时,结果总是未定义的,函数似乎缺少定义
var monitor=require('../public/js/monitor.js')
var x=monitor.doThing()
console.log(x)//始终返回未定义的
任何想法?您的
doThing()
方法没有返回值,因此它将始终返回未定义的
。如果希望返回值,则必须在该方法中
返回someValue