当前位置:   article > 正文

中间件的应用-访问日志_中间件集成之后还可以查看日志吗

中间件集成之后还可以查看日志吗

中间件的应用-访问日志

中间件介绍
middleware, 中间件一个特殊的url地址处理函数,它被当作 app.use(中间件函数) 的参数或者是某个路由处理函数中使用。

  • 中间件是 express 的最大特色,也是最重要的一个设计。Express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。
  • 一个 express 应用,就是由许许多多的中间件来完成的!


目标

创建服务器,提供日志功能,记录用户每一个请求明细


一、引入包

需要引入express包,npm init --yes初始化,npm i express安装express包。

二、使用步骤

1.引入包

代码如下:

// 引入模块
const express = require('express')

// 创建一个app
const app = express()
  • 1
  • 2
  • 3
  • 4
  • 5

2. 中间件

代码如下:

// 中间件
app.use((req,res,next)=> {
    next()
})
  • 1
  • 2
  • 3
  • 4
  • req就是请求相关的对象,它和下一个中间件函数中的req对象是一个对象
  • res就是响应相关的对象,它和下一个中间件函数中的res对象是一个对象
  • next:它是一个函数,调用它将会跳出当前的中间件函数,执行后续中间件;如果不调用next,也不执行res.end,则整个请求都会在当前中间件卡住。

3. 启动服务器

代码如下:

// 启动服务器
app.listen(8080,()=> {
    console.log('8080就绪')
})
  • 1
  • 2
  • 3
  • 4

服务器启动效果如图所示:
在这里插入图片描述

4. 获取信息

  • 获取时间
    console.log('现在的时间是',new Date())
  • 1
  • 获取页面地址
    console.log('访问的页面地址',req.url)
  • 1
  • 获取ip地址
    无法直接获取ip地址,使用时只能通过函数调用
function getClientIp(req) {
    return (
        req.headers['x-forwarded-for'] ||
        req.connection.remoteAddress ||
        req.socket.remoteAddress ||
        req.connection.socket.remoteAddress
    )
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
    console.log('当前用户的id的地址',getClientIp(req))
  • 1

三、 完整代码

// 目标,创建服务器,提供日志功能,记录用户每一个请求明细

// 引入模块
const express = require('express')

// 创建一个app
const app = express()

function getClientIp(req) {
    return (
        req.headers['x-forwarded-for'] ||
        req.connection.remoteAddress ||
        req.socket.remoteAddress ||
        req.connection.socket.remoteAddress
    )
  }

// 中间件
app.use((req,res,next)=> {
    // 输出日志
    console.log('现在的时间是',new Date())
    console.log('访问的页面地址',req.url)
    console.log('当前用户的id的地址',getClientIp(req))
    next()
})

// 启动服务器
app.listen(8080,()=> {
    console.log('8080就绪')
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

完成效果为:
在这里插入图片描述
你们发现一个问题没,这个ip地址,对咯,这个ip地址想要转换,我们可以在终端命令输入ipconfig,获取ip地址在这里插入图片描述
然后在浏览器输入地址就Ok了
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/300982
推荐阅读
相关标签
  

闽ICP备14008679号