English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NodeJS Grundlagen-Tutorial

NodeJS Express.js

NodeJS Puffer & URL;

NodeJS MySql

NodeJS MongoDB

NodeJS Datei (FS)

Andere NodeJS

Express.js-Middleware

Express.js Middleware

Was ist Middleware?

Middleware ist eine Funktion, die auf die Anfrage- und Antwortobjekte zugreifen kann und auch next in der Anfrage des Anwendungs-diese Funktion im Antwortzyklus verwendet.

In diesem Tutorial werden wir lernen, wie man Middleware-Funktionen in einer Node.js Express-Anwendung definiert und wie man Middleware-Funktionen aufruft.

Middleware-Begriff

Anfrage – es ist die HTTP-Anfrage, die beim Senden einer HTTP-Anfrage (z.B. PUT, GET) durch den Client in die Express-Anwendung erreicht. Es enthält Attribute wie Query-String, URL-Parameter, Header und so weiter.

Antwort– das Objekt stellt die HTTP-Antwort dar, die von der Express-Anwendung gesendet wird, wenn sie eine HTTP-Anfrage erhält.

next – next wird verwendet, um zur nächsten Middleware im Middleware-Stapel überzugehen.

Anfrage-Antwortzyklus(Anfrage-Antwortperiode) – von dem Moment an, wo die Anfrage in die Express-Anwendung eindringt, bis die Antwort die Anwendung verlässt, um die Anfrage abzuschließen, wird der Operationsschleifenzyklus ausgeführt.

Middleware-Stapel– bei der Anfrage-Middleware-Funktionshaufen, die während der Antwortperiode ausgeführt werden.

定义中间件功能

Wie bereits in der Definition der Middleware-Funktion erwähnt, kann sie auf die Anfrage, das Antwortobjekt und die nächste Funktion zugreifen.

Die Syntax ist identisch mit der Syntax von JavaScript-Funktionen. Sie akzeptiert Anfrage, Antwortobjekt und die nächste Funktion als Parameter.

 
 function logger(req, res, next) { 
    
 }

 Hier ist 'logger' der Funktionsname, 'req' das HTTP-Anfrageobjekt, 'res' das Knoten-Antwortobjekt und 'next' die Anfrage.-响应周期中的下一个函数。

您可以访问request object的所有属性和方法req。

同样,您可以访问response object的所有属性和方法res。

next()中间件函数内部的调用函数是可选的。如果使用next()语句,则在请求-响应周期中继续执行下一个中间件功能。如果您不调用next()函数,则给定请求的执行将在此处停止。

function logger(req, res, next) { 
    // 您的代码
    next() // 调用中间件堆栈中的下一个函数
 }

调用中间件

在Express应用程序中,您可以使用应用程序对象上的use函数来调用中间件。

var express = require('express') 
var app = express() 
 
function logger(req, res, next) { 
   // 您的代码
   next() 
 } 
 
app.use(logger)

Express.js中间件示例

在此示例中,我们将定义一个名为logger的中间件,该中间件将当前时间和查询字符串记录到控制台。

app.js

var express = require('express') 
var app = express() 
 
// 定义中间件功能
function logger(req, res, next) { 
   console.log(new Date(), req.url) 
   next() 
 } 
 
// 在每个请求-响应周期中调用logger:middleware
app.use(logger) 
 
// 为路径“ /”执行的路由
app.get('/', function(req, res) { 
   res.send('This is a basic Example for Express.js by w3codebox') 
 ) 
 
// 启动服务器
var server = app.listen(8000, function(){ 
    console.log('Listening on port 8000...') 
 )

启动此应用程序,然后在浏览器中单击以下URL。

  • http://localhost:8000/

  • http://localhost:8000/hello-Seite/

输出将是

对于监听8000//localhost:8000/,URL为/ ,因此logger的输出为当前时间和/。同样,对于url也是如此/hello-Seite/。