node.js использует модули, не назначая их переменным - PullRequest
2 голосов
/ 09 октября 2019

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

const example = require('example.js');
example.func();

У меня очень грязный файл node.js, и я хотел быразбить его на несколько частей. Однако мой код выглядит примерно так:

function func1(){ /* ... */ }
function func2(){ /* ... */ }

//blah blah
func1();
//blah blah    
func2();

Если я разделю это на file1.js и file2.js, мой код должен выглядеть следующим образом:

var file1 = require('file1.js');
var file2 = require('file2.js');

//blah blah
file1.func1();
//blah blah
file2.func2();

Я должен поместить file1 или file2 перед своей функцией, чтобы вызвать его, чего я хотел бы избежать. Возможно ли не иметь эти основы?

Уточнение Я хочу, чтобы в одном файле было несколько функций. В примере в качестве примера используется только 1 функция на файл.

1 Ответ

1 голос
/ 09 октября 2019

Похоже, вы хотите, чтобы каждый экспорт экспортировал только функцию, а не объект, содержащий функцию. В file1 и file2 выполните:

module.exports = function func1() {
};

вместо

module.exports.func1 = function func1() {
};

И затем вы можете вызывать такие функции, как:

var func1 = require('file1.js');
var func2 = require('file2.js');

//blah blah
func1();
//blah blah
func2();

(возможно, имеет смысл переименовать имена файлов в func1.js и func2.js)

...