Показать сообщение отдельно
  #10 (permalink)  
Старый 22.07.2017, 09:51
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Я не понимаю ваших задач-вопросов - зачем нужно куда-то какие-то сведения о выполнении отправлять? Вы можете делать из файла-модуля хоть 100500 разных экспотров. Вот файл, который называется file.js
module.exports = function(bla) {
  ...
  ...
  ...
};

function Bar() {
  ...
}
exports.Bar = Bar;

exports.foo = function(blabla) {
  ...
};

Можно запросить его какбэ основную часть, которая есть просто анонимная функция, "function expression" (или "лямбда-функция", я извиняюсь; JavaScript - это же наследник великого Lisp среди си-образных языков). Запросить и сразу вызвать, и с передачей значения аргумента -
require('./file')(tra);

Это по смыслу то же самое, что и вот такой "вызов на месте" (типа - (funcall #'(lambda (bla) (...)) tra) - как-то так)
(function(bla) {
  ...
})(tra);

А можно обратиться к файлу и вызвать отдельные функции:
require('./file').Bar();
require('./file').foo();

Ну и т.д. Экспортировать можно класс - и тогда запрос может быть созданием экземпляра с передачей параметров в поля конструктора:
new require('./file')(bla, tra);

Всё проще, чем может показаться со стороны. И вот эта вся система "модулей" была скопипастена Райаном Далом, как мне кажется, с системы "пакетов" (package) в CommonLisp. (но там можно экспортировать только имена, как во втором варианте, а он, конечно, усовершенствовал это дело)
Но это вот всё объясняется в стареньком (и хорошем) скринкасте про Node.js аффтара и владельца данного ресурса. Его можно посмотреть.

Последний раз редактировалось Audaxviator, 22.07.2017 в 10:15.
Ответить с цитированием