У меня есть 2 функции в index.js, которые я делаю
module.exports.func1 = func1
module.exports.func2 = func2
то где-то я нуждаюсь в них вот так
const func1 = require('./index').func1
const func2 = require('./index').func2
Есть ли способ «очистить это»? что, если у меня будет больше функций, это будет довольно беспорядочно.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Поскольку module.exports является объектом, и поскольку require() возвращает этот объект, вы можете деструктурировать этот объект:
const { func1, func2 } = require('./index');
Если вам нужно извлечь свойства в имена переменных разное, а не в имена свойств, вы можете следовать обычным правилам деструктуризации для переименования во время деструктуризации:
const { func1, func2: myFunc2 } = require('./index');
// use "func1" and "myFunc2" here
Вы можете сделать что-то подобное в index.js:
var func = {
func1 : func1,
func2 : func2
};
module.exports = func;
А затем потребовать, чтобы с помощью деструктурирования:
const {func1} = require('./index');
const {func2} = require('./index');
или одинарный лайнер, как,
const { func1, func2 } = require('./index');
Вы можете использовать фигурную скобку для разрушения объекта.
const { func1, func2 } = require('./index')
Или вы можете использовать класс или объект, и func1, func2 будет методом или свойством в этом классе или объекте.
function MyFunc () {
this.func1 = function () {}
this.func2 = function () {}
}
module.exports = new MyFunc()
или
var myFunc = {
func1: function () {}
func2: function () {}
}
module.exports = myFunc
Затем вы импортируете как:
const myFunc = require("./index")
const func1 = myFunc.func1()
для экспорта функций вы можете экспортировать функцию в index.js следующим образом:
module.exports = {
func1: func1_def,
func2: func2_def
};Где func1_def и func2_def - определения функций. Вы можете импортировать эти функции, как указано ниже, и использовать их напрямую.
const { func1, func2 } = require('./index');Чтобы упростить экспорт, вы можете:
module.exports = { func1, func2 }
Чтобы сделать требование более кратким, вы можете сделать:
const { func1, func2 } = require('./index')
Вы можете экспортировать все свои методы следующим образом:
module.exports = {
func1: () => {
// logic
},
func2: () => {
// logic
},
}
И вы можете использовать его, как показано ниже:
// import or require
const myMethods = require('./path/filename');
// call the method
myMethods.insertUser();
myMethods.loginAction();
myMethods.checkDuplicationID();