Как разделить методы на разные файлы и связать их в один файл для этого - PullRequest
0 голосов
/ 26 апреля 2019

давайте представим, что вы хотите создать файл, содержащий разные методы.Например: файл bundler.js, для которого требуется метод a(), b(), c().Но эти методы очень сложны и занимают много строк кода, поэтому было бы неплохо разделить эти методы на собственные файлы.Итак, у вас есть файлы a.js, b.js и c.js.Файл a.js будет выглядеть так:

module.exports = {
    a: data => console.log(data)
}

Файл b и c будет выглядеть точно так же, и теперь вы хотите использовать их в файле bundle.js.

Моя проблема: все они относятся к одному и тому же экземпляру -> Bundle(), представленному bundle.js, но когда я потребую их в bundle.js, все они будут иметь одно и то же имя переменной, чтобы следовать логическому объявлению,

let bundle = require('./a.js');
let bundle = require('./b.js');
let bundle = require('./c.js');

bundle.a();
bundle.b();
bundle.c();

Но когда я правильно понимаю nodejs (и некоторые другие языки программирования, я думаю), это не сработает.Мне нужен отдельный слой, который объединяет эти методы и экспортирует его снова.Поэтому мне нужен этот слой один раз, и у меня будет доступ ко всем методам.Но я не знаю, как будет выглядеть этот слой.

Может ли кто-нибудь мне помочь?

Большое спасибо за совет.

1 Ответ

0 голосов
/ 26 апреля 2019

Хорошо, пару вещей, чтобы отметить здесь, чтобы начать.1) Ваши заявления require не выполняются правильно.Переменная bundle в основном перезаписывается каждый раз, когда вам нужно.Вы бы сделали что-то вроде:

let bundleA = require('./a.js');
let bundleB = require('./b.js');
let bundleC = require('./c.js');

Таким образом, ваша bundle переменная не будет перезаписываться каждый раз.Теперь о том, что вы на самом деле спрашиваете.Вы хотите создать файл, в данном случае с именем bundle.js, который будет выглядеть примерно так:

// your bundle.js
const a = require('./a.js')
const b = require('./b.js')
const c = require('./c.js')    

exports.bundledA = function() {
   return a;
}

exports.bundledB = function() {
   return b;
}

exports.bundledC = function() {
   return c;
}

Теперь у вас есть bundle.js, который вы можете включить.Поэтому следующим шагом будет использование этого, что-то вроде этого:

// Some file
const bundle = require('./bundle')

// Using method A
bundle.bundledA()

Надеюсь, все это имеет смысл.Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь говорить об этом в комментарии, и я постараюсь объяснить, как могу.Здесь также есть ссылка для экспорта и создания ваших собственных модулей, о которых вы должны прочитать:

https://www.sitepoint.com/understanding-module-exports-exports-node-js/

Удачное кодирование: -)

...