ExpressJS中间件 ExpressJS URL构建 ExpressJS模板 中间件函数是可以访问 request object (req) , response object (res) 以及应用程序请求 - 响应周期中的下一个中间件函数的函数。这些函数用于修改 req 和 res 对象,用于解析请求体,添加响应头等任务。 这是一个中间件功能的简单示例 var express = require('express'); var app = express(); //Simple request time logger app.use(function(req, res, next){ console.log("A new request received at " + Date.now()); //This function call is very important. It tells that more processing is //required for the current request and is in the next middleware function/route handler. next(); }); app.listen(3000); 为服务器上的每个请求调用上述中间件。因此,在每次请求之后,我们将在控制台中收到以下消息 A new request received at 1467267512545 要将其限制为特定路由(及其所有子路由),请将该路由作为 app.use() 的第一个参数提供。例如, var express = require('express'); var app = express(); //Middleware function to log request protocol app.use('/things', function(req, res, next){ console.log("A request for things received at " + Date.now()); next(); }); // Route handler that sends the response app.get('/things', function(req, res){ res.send('Things'); }); app.listen(3000); 现在,无论何时您请求'/things'的任何子路由,它都会记录时间。 中间件调用顺序 关于Express中间件最重要的事情之一是它们被写入/包含在文件中的顺序; 考虑到路线匹配也需要考虑它们的执行顺序。 例如,在下面的代码片段中,第一个函数首先执行,然后是路由处理程序,然后是结束函数。此示例总结了如何在路由处理程序之前和之后使用中间件; 还有一个路由处理程序如何用作中间件本身。 var express = require('express'); var app = express(); //First middleware before response is sent app.use(function(req, res, next){ console.log("Start"); next(); }); //Route handler app.get('/', function(req, res, next){ res.send("Middle"); next(); }); app.use('/', function(req, res){ console.log('End'); }); app.listen(3000); 当我们在运行此代码后访问'/'时,我们会在 中间 和控制台上收到响应- Start End 下图总结了我们对中间件的了解 - 现在我们已经介绍了如何创建自己的中间件,让我们讨论一些最常用的社区创建的中间件。 第三方中间件 此处 : http://expressjs.com/en/resources/middleware.html 提供Express的第三方中间件列表。以下是一些最常用的中间件; 我们还将学习如何使用/装载这些 body-parser 这用于解析附加了有效负载的请求的主体。要安装body解析器,我们需要使用 npm install --save body- parser安装它并安装它,在index.js中包含以下行 var bodyParser = require('body-parser'); //To parse URL encoded data app.use(bodyParser.urlencoded({ extended: false })) //To parse json data app.use(bodyParser.json()) 要查看body-parser的所有可用选项,请访问其github页面。 cookie-parser 它解析 Cookie 标头并使用由cookie名称键入的对象填充req.cookies。要安装cookie解析器,我们需要使用npm install --save cookie-parser安装它并安装它,在index.js中包含以下行 var cookieParser = require('cookie-parser'); app.use(cookieParser()) express-session 它使用给定的选项创建会话中间件。我们将在Sessions部分讨论它的用法。 我们在ExpressJS中有许多其他第三方中间件。但是,我们在这里只讨论了几个重要的问题。 ExpressJS URL构建 ExpressJS模板