morgan.format 不是我研究logger中间件的函数

morgan.format is not a function when I study the logger middleware

您好,我正在学习有关 morgan

的源代码

当我看到那行时 morgan.format('combined', ...) 据我了解,为什么它可以 运行 成功而不导致 morgan.format is not a function。当我在本地提取主要代码 运行 时出现错误。 这个地方是如何实现的?

有人可以告诉我吗?提前致谢。

感谢 module.exports 魔法使 format() 方法可以访问主 morgan() 函数。

这是一个最小的复制:

module.exports = morgan
module.exports.format = format  // format() method is now available to morgan

function morgan() {}

morgan.format()  // Hello from format()

function format() {
  console.log('Hello from format()')
}

简而言之,module.exports.some_method = some_methodsome_method()功能添加到主模块中。