Импорт модуля для всех методов module.exports в node.js - PullRequest
1 голос
/ 03 апреля 2020

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

module.exports = {

    a: function () {
        const util = require("commonModule");
        // Do things
    },

    b: function () {
        const util = require("commonModule");
        // Do other things
    },

    c: function () {
        const util = require("commonModule");
        // Do more other things
    }
}

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

const util = require("commonModule");

function a(){
// Do things using commonModule
}

function b(){
// Do other things using commonModule
}

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

1 Ответ

1 голос
/ 03 апреля 2020

Вам не нужно требовать его в каждой отдельной функции. Вы можете просто сделать это:

const util = require("commonModule");
module.exports = {

    a: function () {
        // Do things
    },

    b: function () {
        // Do other things
    },

    c: function () {
        // Do more other things
    }
}

или, если хотите, это:

const util = require("commonModule");

function a(){
// Do things using commonModule
}

function b(){
// Do other things using commonModule
}

module.exports.a = a;
module.exports.b = b;

или даже третьим способом:

const util = require("commonModule");

module.exports.a = function (){
// Do things using commonModule
}

module.exports.b = function () {
// Do other things using commonModule
}

Какой вы выберете зависит от вас.

...