"摩根"模块与快递应用程序有什么关系?

3gw*_*ain 71 node.js express

在一个快速教程中,作者正在使用npm module morgan.摩根可以为快递应用做些什么?谁能帮我理解这个?

通过谷歌搜索得到这个,但我在这里什么都不懂:

var express = require('express')
var morgan  = require('morgan')

var app = express()
app.use(morgan('combined'))
morgan('combined')

morgan(':remote-addr :method :url')

morgan(function (tokens, req, res) {
  return req.method + ' ' + req.url
})
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Pet*_*ons 95

Morgan用于记录请求详细信息.但是,你问题中的片段没有意义,因为它实际上并不是从上到下的单个连贯片段.这是您可以传递给摩根的各种类型选项的一系列示例.在真实的程序中,您只需要其中一个.例如:

var express = require('express')
var morgan  = require('morgan')

var app = express()
//This tells express to log via morgan
//and morgan to log in the "combined" pre-defined format
app.use(morgan('combined'))
//That's it. Everything in your snippet after this are just
//other variations your might want to use
Run Code Online (Sandbox Code Playgroud)

  • Morgan支持一些具有众所周知的名称/结构的预定义记录格式.组合,共同,开发,短,微小.该字符串告诉摩根您希望使用哪种日志格式.https://www.npmjs.com/package/morgan#predefined-formats (12认同)
  • 对不起,我不明白"合并"你能解释一下吗? (4认同)
  • @RotimiBest默认情况下,日志写入标准输出(程序的常规控制台输出)。如果要写入文件系统上的特定文件,也可以传递配置选项。 (3认同)

Kri*_*wal 22

Morgan基本上是一个记录器,在发出任何请求时,它会自动生成日志.

  • 也许这是一个愚蠢的问题,但是将日志存储在文件或std.out中的什么位置? (2认同)
  • @RotimiBest默认情况下,模块写入标准输出(控制台输出)。但是,可以很容易地将其配置为将这些日志写入文件系统上的自定义文件。 (2认同)

小智 6

Morgan:是另一个用于 Node.js 的 HTTP 请求记录器中间件。它简化了将请求记录到应用程序的过程。您可能会将 Morgan 视为从您的服务器收集日志(例如您的请求日志)的助手。它节省了开发人员的时间,因为他们不必手动创建公共日志。它标准化并自动创建请求日志。

Morgan 可以独立运行,但通常与 Winston 结合使用。Winston 能够将日志传输到外部位置,或在分析问题时查询它们。