как экспортировать модули и переменные

1

Im работает над кодом датчика, и когда объект имеет определенные границы, он должен испускать ("enterProximity"), поэтому, когда этот код запускается

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);
 }

В этом коде "здесь" должно быть равно true, когда "enter" имеет значение true в main.js

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

module.exports = {
  withinBounds: withinBounds,
  onProximityBoolean: onProximityBoolean(enter)
};

но вместо этого он печатает как это

http://imgur.com/a/usUnD

как я могу здесь переназначить себя непрерывно?

  • 0
    Вы вызываете функцию onProximityBoolean в module.exports с enter , который из кода помещен undefined . Который присваивает ключ onProximityBoolean со значением false, и он никогда не меняется.
  • 0
    я забыл добавить, что я определил это, я отредактировал это спасибо
Показать ещё 1 комментарий
Теги:

1 ответ

1

Ваш module.exports возвращает значение onProximityBoolean (undefined), а не сама функция.

Если вы измените свой 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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню