这篇文章主要介绍了节点。js中间件的工作原理是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
什么是表达中间件?
- <李>中间件在字面上的意思是你在软件的一层和另一层中间放置的任何东西。李> <李>表达中间件是在对表达服务器请求的生命周期内所执行的函数。李> <李>每个中间件都可以访问其被附加到的所有路由的HTTP请求和响应。李> <李>另外,中间件可以终止HTTP请求,也可以用下将其传递给另一个中间件函数。中间件的这种“链”使你可以对代码进行划分并创建可重用的中间件。李>
编写表达中间件的要求
你需要安装一些东西来创建,使用和测试表达中间件。首先需要节点和NPM。为确保已经安装,可以运行:
npm - v,,节点- v
你应该看到已安装的节点和NPM版本。如果出现错误,则需要安装节点。所有例子都应在节点版本8 +和NPM版本5 +下使用。
本文使用了表达4。x版。这很重要,因为从3。x版到4。x版有重大的更改。
表达中间件:基础
首先我们使用表达最基本的内置中间件。创建一个新项目并npm初始化它…
npm init npm安装表达——保存 创建服务器。js和粘贴以下代码: const表达=要求(& # 39;表达# 39;); const应用=表达(); app.get(& # 39;/& # 39;(点播,res,下一个)=比;{ res.send(& # 39;欢迎回家# 39;); }); app.listen (3000),
中间件解决什么问题?为什么要用它?
假设你<强>在web网络服务器上正在使用节点。js和表达>强运行网络应用程序。在此应用中,你需要登录的某些页面。
当Web服务器收到数据请求时,表示将为你提供一个请求对象,其中包含有关用户及其所请求数据的信息。表达还使你可以访问响应对象,可以在Web服务器响应用户之前对其进行修改。这些对象通常缩短为<强>申请强>,<强> res 强>。
中间件函数是使用相关信息修改<强>申请强>和<强> res 强>对象的理想场所。例如用户登录后,你可以从数据库中获取其用户详细信息,然后将这些详细信息存储在<代码> res。用户代码>中。
中间件函数是什么样的?
异步函数userMiddleware(下)要求,res, { 尝试{ const用户数据=https://www.yisu.com/zixun/await getUserData (req.params.id);//下面看到app.get 如果(用户数据){ 要求的事情。用户=用户数据; next (); } }捕捉(错误){ res.status (500) .send (error.message);//替换为适当的错误处理 } }
如果出现错误,并且你不想执行其他代码,则不要调用该函数。请记住在这种情况下要发送响应,否则客户端将会等待响应直到超时。
中间件链你可以在中间件数组中或着通过使用多个<代码>应用程序。使用> 代码调用来链接中间件:
app.use (middlewareA); app.use (middlewareB); app.get (& # 39;/& # 39; middlewareC,中间件,处理程序),快递收到请求后,与请求相匹配的每个中间件都将会按照初始化的顺序运行,直到有终止操作为止。
因此,如果发生错误,则将按顺序调用所有用于处理错误的中间件,直到其中一个不再调用<强> next() 强>函数调用为止。
表达中间件的类型
- <李>路由器级中间件,例如:router.use李> <李>内置中间件,例如:express.static, express.json, express.urlencoded李> <>李错误处理中间件,例如:app.use(下)呃,点播,res,李> <李>第三方中间件,例如:bodyparser, cookieparser李> <>李路由器级中间件李> <李>
表达。路由器使用表达。路由器类创建模块化的,可安装的路由处理。路由实例是一个完整的中间件和路由系统。
- <李>你可以用中间件进行日志记录,身份验证等操作。如下所示,以记录用户的最新活动并解析身份验证标头,用它确定当前登录的用户并将其添加到请求对象。