`morgan`模块与快速应用程序有什么关系?


82

在一个快速教程中,作者使用npm module morgan。摩根可以为Express应用做什么?有人可以帮我理解吗?

通过谷歌搜索了解了这一点,但是我在这里什么都不懂:

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
})

1
morgan是一个记录器npmjs.org/package/morgan。如有疑问,请转到npm网站。
nowk 2014年

15
问题不仅仅是一个疑问,我正在寻找一些有意义的例子来正确理解。
3gwebtrain 2014年

Answers:


106

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

5
抱歉,我不明白“合并”的内容,您能解释一下吗?
Kannan T

14
Morgan支持许多预定义的日志格式,这些格式具有众所周知的名称/结构。组合,常见,开发,简短,微小。该字符串告诉morgan您要使用哪种日志格式。npmjs.com/package/morgan#predefined-formats
Peter Lyons

3
@RotimiBest默认情况下,日志写入标准输出(程序的常规控制台输出)。如果要写入文件系统上的特定文件,也可以传递配置选项。
彼得·里昂

23

Morgan基本上是一个记录器,它对任何请求都自动生成日志。


2
也许这是一个愚蠢的问题,但是将日志存储在文件或std.out中的什么位置?
rotimi-best

2
@RotimiBest默认情况下,模块写入标准输出(控制台输出)。但是,可以将其轻松配置为将这些日志写入文件系统上的自定义文件。
克里希纳·加内里瓦尔

5

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

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


你能举一个使用摩根的例子吗,我不明白。
Rohan Devaki

3

Morgan是流行的Node.js HTTP请求中间件记录器,基本上用作记录器。它可以与node js的winston软件包一起使用,以将HTTP请求数据日志与其他信息合并在一起。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.