在前端开发中,日志记录是至关重要的一个环节,而 middleware-log
是一个非常好用的 npm 包,它可以轻松地记录 HTTP 请求和响应的相关信息,这篇文章将详细介绍如何使用 middleware-log
。
什么是 middleware-log
middleware-log
是一个用于记录 HTTP 请求和响应的相关信息的中间件,在 node.js 和 Express 中使用非常方便,可以记录任意 HTTP 请求和响应的信息,包括请求 URL、请求方法、响应代码、请求和响应的 headers 等等。
如何使用 middleware-log
在命令行中使用 npm 安装
middleware-log
npm install middleware-log
在代码中引入
middleware-log
const express = require('express'); const logMiddleware = require('middleware-log'); const app = express(); // 使用 logMiddleware app.use(logMiddleware);
这样,
middleware-log
就可以用于请求和响应的记录了。为
middleware-log
添加配置信息middleware-log
可以使用一个选项对象作为参数,用于设置一些配置信息。下面是一个配置示例:const options = { skip: function (req, res) { // 不记录 /healthcheck/ 路径的请求 return /^\/healthcheck\//.test(req.path); } };
然后在
app.use
中传入该配置对象即可:app.use(logMiddleware(options));
在请求和响应中记录信息
middleware-log
可以记录一些常用信息,例如请求的路径、请求方法、请求 body、响应代码等等。下面是一些可用的记录信息:req.originalUrl
: 请求的完整路径,包括 query stringreq.method
: 请求的方法(GET、POST 等)res.statusCode
: 响应的状态码req.ip
: 发起请求的 IP 地址req.headers
: 请求的 headersreq.body
: 请求体的内容res.headers
: 响应的 headersres.body
: 响应体的内容
我们可以在
options
对象中配置需要记录的信息:const options = { format: `[[magenta] :method] [bold yellow] :originalUrl [gray] (:status) [gray] (:user-agent) [gray] :response-time ms`, tokens: { 'user-agent': (req, res) => req.headers['user-agent'], }, };
然后在
app.use
中使用该配置:app.use(logMiddleware(options));
这样,在终端中输出的日志就会带上我们配置的信息了。
示例代码
下面是一个完整的示例代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------------- - -------------------------- ----- --- - ---------- ----- ------- - - ----- -------- ----- ---- - ------ ---------------------------------- -- ------- ----------- -------- ----- ------- ------------ ------ --------- ------ ------------- ------ -------------- ---- ------- - ------------- ----- ---- -- -------------------------- -- -- -------------------------------- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - -------------------- --- --------- -- ---- -------- ---
在终端中启动该服务,并访问 http://localhost:3000/
,可以看到如下输出:
[2022-02-08T01:29:48.719Z] app started on port: 3000 (pid: 115504) [GET] / (200) Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, Gecko) Chrome/98.0.4758.65 Safari/537.36 23.303ms
学习和指导意义
middleware-log
的使用非常简单,可以帮助我们方便地跟踪请求和响应的信息。学习 middleware-log
可以帮助我们更好地处理 HTTP 请求和响应,提高我们的开发效率和代码质量。
在实际使用中,我们应该根据自己的需求来配置 options
对象中的选项,记录适合自己的信息,以满足自己的开发需求。同时,我们需要注意 middleware-log
的性能问题,在配置中选择需要记录的信息时,应该避免记录过多的信息导致性能问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600572ca81e8991b448e8f7c