玉田县住房和城乡建设局网站,网络正常但网页打不开,江苏建设是国企吗,做网站诊断概述
中间件函数能够访问请求对象 (req)、响应对象 (res) 以及应用程序的请求/响应循环中的下一个中间件函数。下一个中间件函数通常由名为 next 的变量来表示。
中间件函数可以执行以下任务#xff1a;
执行任何代码。对请求和响应对象进行更改。结束请求/响应循环。调用堆…概述
中间件函数能够访问请求对象 (req)、响应对象 (res) 以及应用程序的请求/响应循环中的下一个中间件函数。下一个中间件函数通常由名为 next 的变量来表示。
中间件函数可以执行以下任务
执行任何代码。对请求和响应对象进行更改。结束请求/响应循环。调用堆栈中的下一个中间件。
如果当前中间件函数没有结束请求/响应循环那么它必须调用 next()以将控制权传递给下一个中间件函数。否则请求将保持挂起状态。
以下示例显示中间件函数调用的元素 中间件函数适用的 HTTP 方法。 中间件函数适用的路径路由。 中间件函数。 中间件函数的回调自变量按约定称为“next”。 中间件函数的 HTTP 响应自变量按约定称为“res”。 中间件函数的 HTTP 请求自变量按约定称为“req”。
以下是“Hello World”Express 应用程序的简单示例将为其定义两个中间件函数 var express require(express);
var app express();app.get(/, function (req, res) {res.send(Hello World!);
});app.listen(3000);开发
以下是称为“myLogger”的中间件函数的简单示例。此函数仅在应用程序的请求通过它时显示“LOGGED”。中间件函数会分配给名为 myLogger的变量。 var myLogger function (req, res, next) {console.log(LOGGED);next();
};请注意以上对 next() 的调用。调用此函数时将调用应用程序中的下一个中间件函数。 next() 函数不是 Node.js 或 Express API 的一部分而是传递给中间件函数的第三自变量。next() 函数可以命名为任何名称但是按约定始终命名为“next”。为了避免混淆请始终使用此约定。
要装入中间件函数请调用 app.use() 并指定中间件函数。 例如以下代码在根路径 (/) 的路由之前装入 myLogger 中间件函数。 var express require(express);
var app express();var myLogger function (req, res, next) {console.log(LOGGED);next();
};app.use(myLogger);app.get(/, function (req, res) {res.send(Hello World!);
});app.listen(3000);应用程序每次收到请求时会在终端上显示消息“LOGGED”。
中间件装入顺序很重要首先装入的中间件函数也首先被执行。
如果在根路径的路由之后装入 myLogger那么请求永远都不会到达该函数应用程序也不会显示“LOGGED”因为根路径的路由处理程序终止了请求/响应循环。
中间件函数 myLogger 只是显示消息然后通过调用 next() 函数将请求传递到堆栈中的下一个中间件函数。
下一个示例将名为 requestTime 的属性添加到请求对象。我们将此中间件函数命名为“requestTime”。 var requestTime function (req, res, next) {req.requestTime Date.now();next();
};现在该应用程序使用 requestTime 中间件函数。此外根路径路由的回调函数使用由中间件函数添加到 req请求对象的属性。 var express require(express);
var app express();var requestTime function (req, res, next) {req.requestTime Date.now();next();
};app.use(requestTime);app.get(/, function (req, res) {var responseText Hello World!;responseText Requested at: req.requestTime ;res.send(responseText);
});app.listen(3000);您向应用程序根发出请求时此应用程序当前在浏览器中显示请求的时间戳记。
因为您拥有请求对象、响应对象、堆栈中的下一个中间件函数以及整个 Node.js API 的访问权所以中间件函数的可能性是无穷的。