个性化阅读
专注于IT技术分析

Express.js中间件

本文概要

Express.js中间件是不同类型的由Express.js最终请求处理程序之前路由层调用的函数。正如其名称所指定的,中间件出现在的初始请求和最终预定路线之间的中间。在堆栈中,中间件功能在它们被添加的顺序总是调用。

中间件通常用于执行状体解析任务的URL编码或JSON请求,cookie解析基本cookie处理,或在飞行中甚至构建JavaScript模块。


什么是中间件功能

中间件功能是函数,获得在请求 – 响应周期的请求和响应的对象(REQ,RES)。

中间件功能可以执行以下任务:

  • 它可以执行任意代码。
  • 它可以修改请求和响应的对象。
  • 它可以结束请求响应周期。
  • 它可以调用堆栈中的下一个中间件功能。

Express.js中间件

以下是Express.js应用程序可能使用的中间件的列表:

  • 应用级中间件
  • 路由器级中间件
  • 错误处理中间件
  • 内置的中间件
  • 第三方中间件

让我们举个例子就明白了什么是中间件以及它是如何工作的。

让我们最基本的Express.js应用:

文件:simple_express.js

var express = require('express');
var app = express();

app.get('/',function(req,res) {
  res.send('Welcome to srcmini!');
});
app.get('/help',function(req,res) {
  res.send('How can I help You?');
});
var server = app.listen(8000,function () {
  var host = server.address().address
  var port = server.address().port
console.log("Example app listening at http://%s:%s",host,port)
})
运行node项目

你将看到服务器正在监听。

现在,你可以看到http://127.0.0.1:8000通过服务器在本地主机上所产生的结果

输出:

查看浏览器输出

让我们来看看下一个页面:http://127.0.0.1:8000/help

输出:

查看help页面
查看路由 命令提示符

注意:你将看到该命令提示符没有改变。装置,它没有显示尽管GET请求在http://127.0.0.1:8000/help页处理的GET请求中的任何记录。

Express.js中间件的应用

如果你想记录每次你得到一个请求,那么你可以使用一个中间件。

见下面的例子:

文件:simple_middleware.js

var express = require('express');
var app = express();
app.use(function(req,res,next) {
  console.log('%s %s',req.method,req.url);
  next();
});
app.get('/',function(req,res,next) {
  res.send('Welcome to srcmini!');
});
app.get('/help',function(req,res,next) {
  res.send('How can I help you?');
});
var server = app.listen(8000,function () {
  var host = server.address().address
  var port = server.address().port
  console.log("Example app listening at http://%s:%s",host,port)
})

你将看到服务器正在监听。

现在,你可以看到http://127.0.0.1:8000通过服务器在本地主机上所产生的结果

输出:

你可以看到,输出是相同的,但命令提示符显示GET结果。

转到http://127.0.0.1:8000/help

多次重新加载页面,在命令提示符下将被更新。

注:在上面的例子接下来被使用next()的中间件。

中间件实例详解

  • 另外,在上述实施例的中间件一个新的功能是用来经由app.use每个请求来调用。
  • 中间件是一个函数,就像途径处理,并援引了类似的方式。
  • 你可以添加的上方或下方使用相同的API更中间件。
赞(0)
未经允许不得转载:srcmini » Express.js中间件

评论 抢沙发

评论前必须登录!