@D1ma5ta

Как экспортировать переменную так, чтобы можно было менять ее значение в другом файле?

Создаю переменную, но возникает ошибка, когда пытаюсь поменять ее значение в другом файле.

Как сделать так, что бы при экспорте можно было менять ее значение?

Файл stopHandler.js:
const { Markup } = require("telegraf");
const { removePair, waitingUsers } = require("../pairManagement");
const { getMainKeyboard } = require("../utils");

let userWantsToSearch = false; // Вот эта переменная

function stopHandler(ctx) {
  userWantsToSearch = false;

  if (pairId) {
    ctx.telegram.sendMessage(
      pairId,
      "Ваш собеседник завершил разговор. Отправьте /next, чтобы найти нового собеседника.",
    );
  }
}

module.exports = { stopHandler, userWantsToSearch };


nextHandler.js:
const { getMainKeyboard } = require("../utils");
const { userWantsToSearch } = require("./stopHandler");

function nextHandler(ctx) {
userWantsToSearch = true // здесь меняю значение
  if (userWantsToSearch) {
        ctx.telegram.sendMessage(
          pairId,
          "Ваш собеседник начал поиск нового собеседника. Отправьте /next, чтобы найти нового собеседника.",
          getMainKeyboard()
        );
      }
    }
}

module.exports = nextHandler;
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 2
@historydev Куратор тега JavaScript
stopHundler:
module.exports = function () {
  this.test = 123;
};


nextHandler:
require('./test.js')();

test = 555;

console.log(test);
Ответ написан
Комментировать
Lynn
@Lynn
nginx, js, css
Вместо экспорта переменной лучше экспортировать методы для её чтения и изменения.
let myVar = false;
const getMyVar = () => myVar;
const setMyVar = (value) => { myVar = value };

module.exports = { getMyVar, setMyVar };


const { getMyVar, setMyVar } = require('./myVarModule');

console.log(getMyVar());
setMyVar(true);
console.log(getMyVar());
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы