概述
在前端开发中,我们常需要利用Node.js
建立后台服务。而express
是Node.js最受欢迎的Web框架之一。express
快速,极简,并且易于学习。但是在快速开发时,我们还需要一些工具来辅助我们完成数据处理、错误处理、日志记录等一系列操作。在这里,我们介绍一个npm包——express-informer
。
express-informer
是一个express中间件,可以收集关于请求响应时间、错误信息、请求内容、请求头等信息,方便我们管理和调试开发。下面我们将详细讲解如何使用这个npm包。
安装
使用npm
命令即可完成安装,这里我们安装最新版本:
npm install express-informer
安装完成后,在express应用中的代码中添加文档中代码即可。
使用方法
引入express-informer
const informer = require('express-informer');
引入express-informer后,需在express应用中使用它。如下定义一个express应用,同时添加informer
。
const express = require('express'); const app = express(); const informer = require('express-informer'); // 引入express-informer app.use(informer()); // 添加中间件
在app.use()
这行代码中添加的informer()
就是将express-informer
安装到应用中。此时,每次在客户端访问该应用,则会存储一些关于请求的信息。
调用inform方法
当添加informer()
到express应用后,每个请求都会被记录并存储,我们可以通过调用inform
方法打印这些请求的信息。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----- -------- - ---------------------------- -- ------------------ -------------------- ------------ ------------- ---- - ----- ---------- - ------------- -- ---------------- -------------------- ------------ --------------- -------- --- ---------------- -------- -- - -------------------- --- --------- -- ---- -------- ---
在以上示例代码中,我们在路由中调用中间件创建的req.inform()
方法,获取存储的请求数据并将打印信息输出到控制台。
配置inform方法
在调用req.inform()
时,还可以传递一个配置对象参数,如下所示:
-- -------------------- ---- ------- ----- ------ - - ------ ----- ------- ----- -------- ---------------- ----------- ----------- ----- ------------- ----- ---- ------ ------- ----- ------ ----- ----- ------ ------ ------ ------ ---- -- ----- ---------- - -------------------
我们可以根据具体的需求,在以上示例的配置对象中添加或删除相应的属性。
title
:自定义标题,将会在打印信息的顶部method
:是否打印关于HTTP方法的信息headers
:从请求头中打印那些内容statusCode
:是否打印关于HTTP状态码的信息responseTime
:是否打印关于响应时间的信息url
:是否打印URLorigin
:是否打印源信息query
:是否打印查询参数form
:是否打印POST、PUT或PATCH请求中的表单数据files
: 是否打印上传的文件详情error
:是否打印错误信息
在express应用中集成inform数据和WinsonJS
我们可以利用WinsonJS
中间件将inform
数据记录到Winson
日志中。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----- -------- - ---------------------------- -- ------------------ ----- ------- - ------------------- -- --------- ----- ------ - ---------------------- ------ ------- ------- ---------------------- ----------- - --- ------------------------- --------- ------------ ------ ------- --- --- ------------------------- --------- -------------- -- - --- -- -------- -------------------- -- ----- ------------ ------------- ---- - ----- ---------- - ------------- -- ---------------- -------------------- ------------ -- --------- --------------- -------- --- ---------------- -------- -- - -------------------- --- --------- -- ---- -------- ---
在以上示例代码中,我们用winston
定义了一个logger,将config
对象作为参数传递给inform
方法,并通过logger.info()
方法将日志记录下来。
总结
在开发中使用express-informer可以方便地得到请求的详细信息,便于后续定位问题。此外,与WinsonJS
集成可以将数据存储,并进行更细致的调试。如果您对express-informer
感兴趣,请前往npm官网查看文档。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005688981e8991b448e4760