Ba cách gọi next cho ba luồng khác nhau:
next()— chuyển sang middleware/handler kế tiếp trong stack, luồng bình thường.next(err)— truyền bất kỳ giá trị nào khác chuỗi'route'sẽ nhảy thẳng tới error-handling middleware (loại 4 tham số), bỏ qua toàn bộ middleware thường còn lại.next('route')— bỏ qua các handler còn lại của chính route đó và chuyển sang route tiếp theo khớp path. Chỉ có tác dụng trongapp.METHOD()/router.METHOD(), không dùng vớiapp.use().
js
app.get('/user/:id', (req, res, next) => {
if (req.params.id === '0') return next('route') // skip to the next matching route
next()
}, (req, res) => res.send('regular user'))
app.get('/user/:id', (req, res) => res.send('special user'))Lưu ý: next() sau khi đã gửi response sẽ dẫn tới lỗi ERR_HTTP_HEADERS_SENT nếu handler sau đó cũng ghi response.