Introduction to Express4.x middleware features (code example)
This article brings you an introduction to the Express4.x middleware features (code examples). It has certain reference value. Friends in need can refer to it. I hope it will be useful to you. Helps.
Express application is basically a series of middleware function calls. The middleware is executed in a pipeline. You can imagine a real pipe carrying water. Water is pumped in at one end and then passes through various gauges and valves before reaching its destination. An important part of this analogy is the order issue. The effect is different if you put the pressure gauge before the valve than after it. Likewise, if you have a valve that injects something into the water, everything "downstream" of the valve will contain this newly added ingredient. In an Express program, middleware is inserted into the pipeline by calling app.use.
Before Express 4.0, this pipeline was a bit complicated because the router had to be connected explicitly. Depending on where you connect to the router, the routing can come in out of order, which makes the order of the pipeline even less clear when you mix in middleware and route handlers. In Express 4.0, middleware and route handlers are called in the order they are connected, making the order clearer.
Route processors (app.get, app.post, etc., often collectively referred to as app.VERB) can be thought of as middleware that only handles specific HTTP verbs (GET, POST, etc.). Similarly, middleware can also be thought of as a route processor that can handle all HTTP verbs (basically equivalent to app.all, which can handle any HTTP verb; there will be subtle differences for special verbs such as PURGE, but for ordinary As far as predicates are concerned, the effect is the same).
The first parameter of the route processor must be a path. If you want a route to match all paths, just use /*. Middleware can also take a path as the first parameter, but it is optional (if this parameter is omitted, it will match all paths as if /* was specified)
Route processors and middleware There is a callback function in the parameters of the file. This function has 2, 3 or 4 parameters (technically it can also have 0 or 1 parameters, but these forms are meaningless). If there are 2 or 3 parameters, the first two parameters are the request and response objects, and the third parameter is the next function. If there are 4 parameters, it becomes an error handling middleware, and the first parameter becomes the error object, followed by the request, response, and next objects. If next() is not called, the pipeline will be terminated and there will be no further processing by processors or middleware.
If you do not call next(), you should send a response to the client (res.send, res.json, res.render, etc.); if you do not do this, the client will be hung and Eventually resulting in a timeout. If next() is called, it is generally not appropriate to send a response to the client. If you send it, subsequent middleware or route handlers in the pipeline will still execute, but any responses they send will be ignored.
var express = require('express') var app = express() var requestTime = function (req, res, next) { req.requestTime = Date.now() console.log(req.requestTime ); next() } var requestUser = function (req, res, next) { console.log('welcome'); next() } app.use(requestTime) app.get('/', function (req, res) { console.log('//welcome'); var responseText = 'Hello World!<br>' responseText += '<small>Requested at: ' + req.requestTime + '</small>' res.send(responseText) }) app.use(requestUser) app.listen(3000)
Access 127.0.0.1:3000 output time and //welcome will not execute requestUser middleware code 1552630945571//welcome
The above is the detailed content of Introduction to Express4.x middleware features (code example). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



The Node service built based on non-blocking and event-driven has the advantage of low memory consumption and is very suitable for handling massive network requests. Under the premise of massive requests, issues related to "memory control" need to be considered. 1. V8’s garbage collection mechanism and memory limitations Js is controlled by the garbage collection machine

This article will give you an in-depth understanding of the memory and garbage collector (GC) of the NodeJS V8 engine. I hope it will be helpful to you!

The file module is an encapsulation of underlying file operations, such as file reading/writing/opening/closing/delete adding, etc. The biggest feature of the file module is that all methods provide two versions of **synchronous** and **asynchronous**, with Methods with the sync suffix are all synchronization methods, and those without are all heterogeneous methods.

Node 19 has been officially released. This article will give you a detailed explanation of the 6 major features of Node.js 19. I hope it will be helpful to you!

Choosing a Docker image for Node may seem like a trivial matter, but the size and potential vulnerabilities of the image can have a significant impact on your CI/CD process and security. So how do we choose the best Node.js Docker image?

How does Node.js do GC (garbage collection)? The following article will take you through it.

The reason why node cannot use the npm command is because the environment variables are not configured correctly. The solution is: 1. Open "System Properties"; 2. Find "Environment Variables" -> "System Variables", and then edit the environment variables; 3. Find the location of nodejs folder; 4. Click "OK".

The event loop is a fundamental part of Node.js and enables asynchronous programming by ensuring that the main thread is not blocked. Understanding the event loop is crucial to building efficient applications. The following article will give you an in-depth understanding of the event loop in Node. I hope it will be helpful to you!
