Я пытаюсь избежать использования глобальных переменных в моем файле server.js, но мне нужны переменные, доступные и доступные для записи различными функциями. Однако я не уверен, что видимость работает так же, как на стороне клиента (так как она кажется более «скрытой»). Я где-то читал, что модули имеют собственную область видимости, но если я помещаю туда переменные, и они доступны в server.js, разве это не то же самое, что глобальная область видимости? Например:

//module.js var config = [ {var1: 1}, {var2: 2}, {var3: 3} ] module.exports = { config }; //server.js const { config } = require("./config.js") function function1() { var a = config[0].var1 bar b = config[0].var2 config[0].var3 = a b // changing var3 value in module } 

Является ли использование модулей таким способом приемлемым? Если нет, то что будет считаться лучшей практикой здесь?

Благодарность

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

запустите код ниже, и я думаю, что он работает так, как вы хотите.

 //module.js var config = [ {var1: 1}, {var2: 2}, {var3: 5} ] console.log(config[2].var3) //5 module.exports = config //server.js const config = require("./app.js") function function1() { var a = config[0].var1 var b = config[1].var2 config[2].var3 = a b // changing var3 value in module console.log(config[2].var3) } function1() //3 console.log(config[2].var3)//3 //client.js const config = require("./app.js") console.log(config[2].var3) //5 
Мухаммед

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Правила поведения

,