require
возвращает экспорт какого-либо другого модуля. Здесь, поскольку debug
передается в require
, требуется модуль debug
. Этот модуль делает :
debug предоставляет функцию; просто передайте этой функции имя вашего модуля, и он вернет оформленную версию console.error, чтобы вы могли передавать отладочные операторы. Это позволит вам переключать выходные данные отладки для различных частей вашего модуля, а также для модуля в целом.
Итак
const debug = require('debug')('api:server');
, где require('debug')
разрешается в функция имеет вид:
const debug = deccorateModule('api:server');
, где decorateModule
выполняет функции, описанные выше. В этом случае require
действует как функция высшего порядка: функция, которая возвращает функцию. (Возможно, у вас есть модуль с именем api:server
)
В результате переменная debug
содержит оформленную версию console.error
.