Express Middleware

Một phần của phần mềm trung gian là một chức năng gắn vào quá trình định tuyến, thực hiện một hoạt động tùy ý tại một số điểm trong chuỗi (tùy thuộc vào những gì chúng ta muốn nó làm).

Một phần của phần mềm trung gian là một chức năng gắn vào quá trình định tuyến, thực hiện một hoạt động tùy ý tại một số điểm trong chuỗi (tùy thuộc vào những gì chúng ta muốn nó làm).

Nó thường được sử dụng để chỉnh sửa các đối tượng yêu cầu hoặc phản hồi hoặc kết thúc yêu cầu trước khi nó đến mã trình xử lý tuyến đường.

Phần mềm trung gian được thêm vào ngăn xếp thực thi như sau:

app.use((req, res, next) => { /* */ })

Điều này tương tự như xác định một tuyến đường, nhưng ngoài các trường hợp đối tượng Yêu cầu và Phản hồi, chúng tôi cũng có tham chiếu đếnkế tiếpchức năng phần mềm trung gian, mà chúng tôi gán cho biếnnext.

Chúng tôi luôn gọinext()ở cuối chức năng phần mềm trung gian của chúng tôi, để chuyển việc thực thi cho trình xử lý tiếp theo. Đó là trừ khi chúng tôi muốn kết thúc sớm phản hồi và gửi lại cho khách hàng.

Bạn thường sử dụng phần mềm trung gian được tạo sẵn, dưới dạngnpmcác gói. Có thể tìm thấy một danh sách lớn những cái có sẵnđây.

Một ví dụ làcookie-parser, được sử dụng để phân tích cú pháp cookie thànhreq.cookiesvật. Bạn có thể cài đặt nó bằng cách sử dụngnpm install cookie-parservà bạn sử dụng nó như vậy:

const express = require('express')
const app = express()
const cookieParser = require('cookie-parser')

app.get(’/’, (req, res) => res.send(‘Hello World!’))

app.use(cookieParser()) app.listen(3000, () => console.log(‘Server ready’))

Chúng ta cũng có thể đặt một hàm phần mềm trung gian chỉ chạy cho các tuyến đường cụ thể (không phải cho tất cả), bằng cách sử dụng nó làm tham số thứ hai của định nghĩa tuyến đường:

const myMiddleware = (req, res, next) => {
  /* ... */
  next()
}

app.get(’/’, myMiddleware, (req, res) => res.send(‘Hello World!’))

Nếu bạn cần lưu trữ dữ liệu được tạo trong một phần mềm trung gian để chuyển nó xuống các chức năng phần mềm trung gian tiếp theo hoặc cho trình xử lý yêu cầu, bạn có thể sử dụngRequest.localsvật. Nó sẽ đính kèm dữ liệu đó vào yêu cầu hiện tại:

req.locals.name = 'Flavio'

Tải xuống miễn phí của tôiSổ tay Express.js


Các hướng dẫn nhanh hơn: