Kịch bản: Hãy xem xét phần sau đây là một phần của mã từ một ứng dụng web nút.Khi nào sử dụng next() và trả về next() trong Node.js
app.get('/users/:id?', function(req, res, next){
var id = req.params.id;
if (id) {
// do something
} else {
next(); //or return next();
}
});
Issue: Tôi đang kiểm tra cái nào đi với chỉ next()
hoặc return next()
. Mã mẫu ở trên hoạt động chính xác như nhau cho cả & không hiển thị bất kỳ sự khác biệt nào trong việc thực thi.
Câu hỏi: Có thể một số ánh sáng một đặt về vấn đề này, khi sử dụng next()
và khi nào sử dụng return next()
và một số khác biệt quan trọng?
Chúng tôi có thể gửi tham số như sau: 'next ('No ID')'? –
'next ('No ID')' thực sự đang gửi một lỗi, điều này sẽ phá vỡ dòng chảy. – drinchev
Sử dụng tiếp theo (null, "somevalue"); Đối với các công cụ như async.waterfall, nó sẽ chuyển giá trị cho hàm tiếp theo. Đối với chuỗi tương tác phức tạp được điều khiển dữ liệu, tôi thường chuyển đối tượng ngữ cảnh giữa các hàm. Bằng cách đó tôi có thể tạo các hàm chung có thể được chia sẻ trên nhiều điểm kết thúc và kiểm soát luồng thông qua dữ liệu trong ngữ cảnh –