Chào các bạn mình có 1 vấn đề sau:
Khi mình thay đổi url của request trong 1 middleware nào đó thì chỉ có middleware ngay sau đó được gọi mà các middleware khác bị bỏ qua. Ví dụ đoạn code sau:
const express = require('express')
const app = express()
app.get('/',function (req, res, next) {
req.url = req.protocol + '://' + req.get('host') + req.originalUrl + 'next' // thay url bằng http://localhost:3000/nxt
console.log('middleware1');
next()
})
app.use('/nxt',function (req, res, next) {
console.log('middleware2');
next()
})
app.use('/nxt',function (req, res, next) {
console.log('middleware3');
next()
})
app.listen(3000);
Khi mình vào bằng đường dẫn http://localhost:3000 thì phần console chỉ in ra middleware1, middleware2 mà ko in ra middleware3, tức là nó đã không nhảy vào middleware3. Nhưng nếu mình vào bằng http://localhost:3000/next thì phần console in ra middleware2, middleware3, tức là nó đã có chạy vào middleware3. Ai có thể giải thích giúp mình hiện tượng đó được không ạ?
Cảm ơn các bạn!!