Уменьшить повторение module.exports для функций? - PullRequest
0 голосов
/ 04 декабря 2018

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

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

, а затем где-то мне требуются такие вот эти

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

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

Ответы [ 6 ]

0 голосов
/ 04 декабря 2018

Вы можете экспортировать все свои методы, как это:

module.exports = {
  func1: () => {
    // logic
  },
  func2: () => {
    // logic
  },
}

И вы можете использовать затем, как показано ниже:

// import or require
const myMethods = require('./path/filename');

// call the method
myMethods.insertUser();
myMethods.loginAction();
myMethods.checkDuplicationID();
0 голосов
/ 04 декабря 2018

Чтобы сделать экспорт более простым, вы можете сделать:

module.exports = { func1, func2 }

Чтобы сделать запрос более кратким, вы можете сделать:

const { func1, func2 } = require('./index')
0 голосов
/ 04 декабря 2018

для экспорта функций вы можете экспортировать функцию в index.js следующим образом:

module.exports = {
  func1: func1_def,
  func2: func2_def
};

Где func1_def & func2_def являются определениями функций.Вы можете импортировать эти функции, как указано ниже, и использовать их напрямую.

const { func1, func2 } = require('./index');
0 голосов
/ 04 декабря 2018

Вы можете использовать фигурные скобки для уничтожения объекта.

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()
0 голосов
/ 04 декабря 2018

Вы можете сделать что-то подобное в index.js:

var func = {
   func1 : func1,
   func2 : func2
};
module.exports = func;

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

const {func1} = require('./index');
const {func2} = require('./index');

или один лайнер как,

const { func1, func2 } = require('./index');
0 голосов
/ 04 декабря 2018

Поскольку module.exports является объектом и поскольку require() возвращает этот объект, вы можете деструктурировать этот объект:

const { func1, func2 } = require('./index');

Если вам необходимо извлечь свойства в имена переменных other , чем имена свойств, вы можете следовать обычным правилам деструктурирования для переименования при деструктурировании:

const { func1, func2: myFunc2 } = require('./index');
// use "func1" and "myFunc2" here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...