Nodejs Express记录每次拨打的电话

时间:2018-10-05 09:04:22

标签: node.js express

有没有一种方法可以记录对我的nodejs服务器的每次调用。从字面上看只是呼叫的URL。我知道这是有可能的,因为我曾经在一个教程中看到一个超级快速的示例,但是我不知道在哪里看到它。

这是我要寻找的东西的一个卑鄙的例子:

app.listen(port, (call)=>{
    console.log(call);
    console.log(`Server running on http://localhost:${port}...`);
})

2 个答案:

答案 0 :(得分:3)

  

有没有一种方法可以记录对我的nodejs服务器的每次调用?

您去了:https://github.com/expressjs/morgan

Example

一个简单的应用程序,它将以Apache组合格式将所有请求记录到STDOUT

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

var app = express()

app.use(morgan('combined'))

app.get('/', function (req, res) {
  res.send('hello, world!')
})

答案 1 :(得分:1)

由于发布了morgan答案,因此,如果您计划使用一些常规逻辑进行自定义怪异日志记录,则始终可以创建自己的中间件:

var express = require('express')
var app = express()

/**
 *  Custom middleware with options
 */
var myUrlLogger = (upperCase)=>{
  
  if( typeof uppercase !== 'boolean' ){
    upperCase = true;
  }
  
  return (req,res,next) =>{
   
   console.log('Logging:', (upperCase ? req.url.toUpperCase() : req.url.toLowerCase()));
   
   next();
  }
}

// Set the middleware before your routes
app.use(myUrlLogger(false));

app.get('/', function (req, res) {
  res.send('hello, world!')
})