Уменьшить повторение module.exports для функций?

У меня есть 2 функции в index.js, которые я делаю

module.exports.func1 = func1
module.exports.func2 = func2

то где-то я нуждаюсь в них вот так

const func1 = require('./index').func1
const func2 = require('./index').func2

Есть ли способ «очистить это»? что, если у меня будет больше функций, это будет довольно беспорядочно.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
133
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Поскольку 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();

Другие вопросы по теме