记录express中的http请求的node.js模块。使用方法morgan(format[,options])format记录日志格式(String类型)。options是由配置项组成的对象。有4种使用形式morgan('tiny')//使用内置格式的名称morgan(':method:url')//使用自定义格式字符串morgan((tokens,req,res)=>{...})//使用返回formatString的方法。tokens是一个包含所有已定义标记的对象。我通过日志得到的token是morgan的一个实例。morgan(morgan.compile(formatString))//使用预编译的formatFunction.apivarmorgan=require('morgan')morgan(format,options)//格式为String/Function。morgan内置了一些记录格式名称。您也可以使用自定义格式名称。如果format是一个函数,它接收3个参数(tokens、req、res)。该方法返回一个字符串作为记录格式,返回undefined/null时跳过记录。//options是由配置项组成的对象。morgan('tiny')//使用内置格式morgan(':method:url:status:res[content-length]-:response-timems')//使用预定义格式morgan((tokens,req,res)=>[tokens.method(req,res),tokens.url(req,res),tokens.status(req,res),tokens.res(req,res,'content-length'),'-',tokens['response-time'](req,res),'ms'].join(''))//使用自定义格式morgan接收一些配置项作为选项对象。formatmorgan有一些内置格式。optiontypedescribedefaultdemocombined使用标准的apache内联输出:remote-addr-:remote-user[:date[clf]]":method:urlHTTP/:http-version":status:res[content-length]":referrer"":user-agent"common使用标准apache:remote-user[:date[clf]]的常见输出":method:urlHTTP/:http-version":status:res[content-length]devConciseoutputcolored状态的输出代码。服务器端出现错误时使用红色。发生客户端错误时使用黄色。重定向时,使用蓝绿色。其他没有颜色。:method:url:status:response-timems-:res[content-length]short使用比默认更短的输出。:remote-addr:remote-user:method:urlHTTP/:http-version:status:res[content-length]-:response-timemstiny使用最小输出:method:url:status:res[content-length]-:response-timems自定义格式。morgan.format('formatName','format')//定义格式formatName是格式的名称。格式是格式的格式。字符串类型。可以在其中使用令牌。morgan.format('joke',[joke]:method)//demorgan('formatName')//这是morgan中使用的源代码。functionformat(name,fn){morgan[name]=fnreturnthis}morgan.format=formattokens下面是内置的token类型tokenNamedescribe:data[format]使用哪个时间格式(可选:clf`iso`web):http-version:method:referrer:remote-addr:remote-user:req[header]请求头中的header。如果没有header,则返回-:res[header]:response-time[digits]从收到请求到返回数据之间花费的时间。数字是精度。默认为3,表示毫秒。:status:url:user-agentCreateanewtokenmorgan.token('tokenName',cb)//cb是一个接受req和res的回调方法。morgan.token('type',(req,res)=>req.headers[content-type])//Definition:type//morgan中使用的源代码是这样的。functiontoken(name,fn){morgan[name]=fnreturnthis}morgan.token=token由一定格式的token组成,作为morgan的参数。optionsoptiontypedescribedefaultdemoimmediateBooleantrue:收到请求时记录。false:返回请求时记录。skipBoolean/Function(req,res){}是否跳过录制流录制的输出流配置。默认情况下,process.stdoutmorgan.compile(format)用于将字符串格式编译为函数格式。该函数接收三个参数(tokens、req、res)。tokens是一个包含所有已定义令牌的对象,req是请求,res是响应。该方法返回字符串类型的单行记录文本。如果未定义,则返回/null,则跳过该记录。格式为字符串类型。使用单行文本,在其中写入:token[params]。使用format时,一般是morgan.format(name,format),但也有一些高级用法可以直接使用compile。例如:morgan.compile('[joke]:method:url:response-timems')。该方法是将formatString预编译成formatFunction.morgan.compile(formatString)返回一个Function,所以使用方法如下:morgan.compile('[joke]:method')//orletff=morgan.compile('[笑话]:method')morgan.format('fs',ff)morgan('fs')
