Что означают слова «module.exports» и «exports.methods» в NodeJS / Express?

При просмотре случайного исходного файла фреймворка express для NodeJS есть две строки кода, которые я не понимаю (эти строки кода типичны почти для всех файлов NodeJS).

/**
 * Expose `Router` constructor.
 */

exports = module.exports = Router;

и

/**
 * Expose HTTP methods.
 */

var methods = exports.methods = require('./methods');

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

Что на самом деле означают exports и module.exports ?

Я считаю, что вторая часть кода позволяет функциям в файле обращаться к методам , но опять же, как именно он это делает.

В принципе, что это за волшебные слова: модуль и экспорт ?

56
задан nbro 21 October 2015 в 11:59
поделиться