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ạngnpm
cá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.cookies
vật. Bạn có thể cài đặt nó bằng cách sử dụngnpm install cookie-parser
và 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.locals
vậ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:
- Express, một khung Node.js phổ biến
- Truy xuất các tham số chuỗi truy vấn GET bằng Express
- Xác thực đầu vào trong Express bằng trình xác thực nhanh
- Express Templates
- Cung cấp tài sản tĩnh với Express
- Gửi phản hồi JSON bằng Express
- Phiên cấp tốc
- Gửi phản hồi bằng Express
- Gửi tệp bằng Express
- Dọn dẹp đầu vào trong Express bằng trình xác thực nhanh
- Định tuyến trong Express
- Máy chủ HTTPS Express có chứng chỉ tự ký
- Tham số Express, Yêu cầu
- Truy xuất các tham số truy vấn POST bằng Express
- Xử lý chuyển hướng với Express
- Express Middleware
- Thiết lập Let's Encrypt for Express
- Làm việc với tiêu đề HTTP trong Express
- Xử lý các biểu mẫu trong Express
- Xử lý tệp tải lên trong các biểu mẫu bằng Express
- Xử lý CORS trong Express
- Quản lý Cookie với Express