Уже надоело ходить вокруг да около и связать-таки базу данных с фронтендом, но все-таки сегодня ещё об одной важной (для себя, по крайней мере) вещи должен сказать. Речь о подключении собственных модулей. Как написано в туториалах и прочем (точнее, как я понял сначала), для того, чтобы модуль подключался с помощью require
var database = require('./database');
надо его код экспортировать с помощью
module.exports = () => { код };
Оказывается, не всегда, а только тогда, когда собираешься этот код потом вызывать как функцию. В противном случае - то есть, чтобы код подключаемого модуля просто отрабатывался при его подключении - делать этого не надо. Более того, если так сделать, то код внутри module.exports отрабатываться не будет, а будет ждать отдельного вызова (через функцию - в нашем случае: database(); ).
Собственно, с этим всем я разбирался потому, что хотел разнести функционал по разным модулям. В итоге получилость так:
Это главный файл, в котором подключается модуль (строка 3).
Это модуль. Пока всё.
var database = require('./database');
надо его код экспортировать с помощью
module.exports = () => { код };
Оказывается, не всегда, а только тогда, когда собираешься этот код потом вызывать как функцию. В противном случае - то есть, чтобы код подключаемого модуля просто отрабатывался при его подключении - делать этого не надо. Более того, если так сделать, то код внутри module.exports отрабатываться не будет, а будет ждать отдельного вызова (через функцию - в нашем случае: database(); ).
Собственно, с этим всем я разбирался потому, что хотел разнести функционал по разным модулям. В итоге получилость так:
Это главный файл, в котором подключается модуль (строка 3).
Это модуль. Пока всё.
Комментариев нет:
Отправить комментарий