Javascript 如何导出模块和变量

Javascript 如何导出模块和变量,javascript,node.js,Javascript,Node.js,我正在处理传感器代码,当某个对象处于某个边界时,它应该发出('enterapproxity') 所以当代码运行时 main.js var entered = require('./main').onProximityBoolean io.on('connection', function(socket) { setInterval(function() { console.log("entered index " + entered); var here = entered.onProximit

我正在处理传感器代码,当某个对象处于某个边界时,它应该发出('enterapproxity') 所以当代码运行时

main.js

var entered = require('./main').onProximityBoolean
io.on('connection', function(socket) {
setInterval(function() {
console.log("entered index " + entered);
var here = entered.onProximityBoolean;
if (here == true) {
  socket.emit('enterProximity');
} 
 },1000);
 }
在这段代码中,当main.js中的“enter”为true时,“here”应该等于true

enter = false
function onProximityBoolean(enter) {
      console.log(enter + " emit entered");
      return enter;
}

module.exports = {
  withinBounds: withinBounds,
  onProximityBoolean: onProximityBoolean(enter)
};
但它却印成这样


如何在此处继续重新分配自身?

您的module.exports返回的是onProximityBoolean(未定义)的值,而不是函数本身

如果将module.exports更改为此

module.exports = {
  withinBounds: withinBounds,
  onProximityBoolean: onProximityBoolean,
};
然后,您的跑步者将:

var entered = require('./main').onProximityBoolean
io.on('connection', function(socket) {
  setInterval(function() {
    console.log("entered index " + entered);
    var here = entered.onProximityBoolean(entered);
    if (here == true) {
      socket.emit('enterProximity');
    } 
  },1000);
}

这能解决你的问题吗?更改是为了确保onProximityBoolean是一个函数,并且您每次在setInterval循环中调用该函数。

您在module.exports with
enter
中调用函数
onProximityBoolean
。它为onProximityBoolean上的键
分配了一个值false,它永远不会改变。我忘了添加我已经定义了它,我用更新对它进行了编辑。变量
enter
永远不会更改,因为您没有在
setInterval
内部调用
onProximityBoolean
。此外,由于
module.exports={withinBounds:withinBounds,onProximityBoolean:onProximityBoolean(enter)}
为键
onProximityBoolean
分配了一个值
false