Javascript 如何导出模块和变量
我正在处理传感器代码,当某个对象处于某个边界时,它应该发出('enterapproxity') 所以当代码运行时 main.jsJavascript 如何导出模块和变量,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
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