排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
举报
首页
/
Node基础和 Express 开发框架:「06] 实现一个根层的请求记录器中间件
Node基础和 Express 开发框架:「06] 实现一个根层的请求记录器中间件
路条编程
2021-12-16
397
这一系列课程将介绍
Express 框架,
Express 框架
不包括在 Node.js 内,是另一个常用的模块。Express 在创建的服务器之间运行 Node.js 和 web 应用程序的前端页。Express 还处理应用程序的路由。路由根据用户与应用程序的交互将用户导向正确的页面。虽然使用 Express 还有其他选择,但它的简单性使它成为学习由 Express 支持的后端和 Node.js 前端之间的交互的一个很好的起点 。
实现一个根层的请求记录器中间件
前面我们介绍了 express.static() 中间件函数。现在是时候更详细地了解什么是中间件了。中间件是一个接收 3 个参数的函数:请求对象、响应对象和在应用请求响应循环中的下一个函数。这些函数执行一些可能对应用程序产生副作用的代码,通常还会在请求对象或者响应对象里添加一些信息。当满足某些条件时,它们也可以结束发送响应的循环。如果它们没有发送响应,那么当它们完成时就会开始执行堆栈中的下一个函数。这将触发调用第 3 个参数 next()。更多信息请查看 express 文档。
看看下面的例子:
function(req, res, next) {
console.log("我是中间件..");
next();
}
假设我们在某个路由上安装了这个中间件函数。当一个请求与路由匹配时,它会显示字符串"我是中间件..."。然后它执行堆栈中的下一个函数。在这个练习中,我们将构建根级中间件。正如我们在练习 4 中看到的,要在根层级安装中间件函数,我们可以使用 app.use(<mware-function>)方法。在这种情况下,该函数将对所有请求执行,但是我们还是可以设置成更具体的条件来执行。举个例子,如果我们希望某个函数只针对 POST 请求执行,可以使用 app.post(<mware-function>)方法。所有 http 动作都有类似的方法,比如 GET、DELETE、PUT 等等。
构建一个简单的日志记录器。对于每个请求,它应该在控制台中记录一个采用以下格式的字符串:method path - ip。一个简单的日志看起来就像这样:GET /json - ::ffff:127.0.0.1。注意 method 和 path 有一个空格,并且 path 和 ip 中间的破折号两边都有空格。在请求对象中,可以使用 req.method、req.path 和 req.ip 获取请求方法(http 动词)、路由相对路径和请求者的 IP 信息。记住,当我们完成时,要调用 next() 方法,否则我们的服务器将一直处于挂起状态。请确保 "Logs" 是打开的,观察一下当一些请求被响应时会发生什么……
提示: Express 按照函数在代码中出现的顺序来评估函数。中间件也是如此。如果我们想让中间件函数适用于所有路由,那么应该在路由之前配置好中间件。
今天就讲到这里,如果有问题需要咨询,大家可以直接留言或扫下方二维码关注公众号。也可以添加 happyzjp 微信受邀加入学习社群,我们会尽力为你解答。
练习网站已经正式上线,大家可以登陆网站 http://www.icoderoad.com 进行文章中示例的练习。
数据库
文章转载自
路条编程
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨