2011-09-20 29 views
9

Tôi đang tạo một ứng dụng web NodeJS qua ExpressJS. Tôi có hai tuyến đường sau (trong số những người khác):Các tuyến có tham số được gọi hai lần?

app.get('/user/reset/verify', function(req, res) { 
    console.log("Executing verification index."); 
    res.render("verify/index"); 
}); 

app.get('/user/reset/verify/:email/:token', function(req, res) { 
    console.log("Executing verification change."); 
    res.render("verify/change"); 
}); 

Khi tôi truy cập trang chỉ mục xác minh, tôi thấy "Thực thi chỉ mục xác minh". in một lần trên bàn điều khiển. Tuy nhiên, khi tôi chuyển đến trang thay đổi xác minh, tôi thấy "Thực thi thay đổi xác minh". in hai lần trên bàn điều khiển.

Tôi nhận thấy rằng đây là xu hướng với các tuyến đường trong ứng dụng của tôi. Các tuyến có chứa các tham số luôn được thực thi hai lần, trong khi các tuyến mà không có tham số chỉ được thực hiện một lần.

Tại sao các tuyến đường có tham số được thực thi hai lần?

Chế độ xem đang được hiển thị chỉ chứa HTML đơn giản - không có gì có thể gây ra yêu cầu khác cho trang. Ngoài ra, tôi đang phát hành các yêu cầu này từ trình duyệt Chrome.

Hệ máy/Versions:

  • NodeJS: 0.5.5 cửa sổ xây dựng (chạy trên Win 7)
  • Express: 2.4.6
  • Connect: 1.7.1
+0

Tôi mong đợi lỗi nút 0.5.5 của nó. Thử sử dụng 0.4.12 – Raynos

+0

@Raynos: Được rồi, tôi sẽ cố gắng tìm một cửa sổ có thể thực thi là 0.4.12 và xem có khắc phục được sự cố không. –

+1

không có cửa sổ nào có thể thực hiện được cho 0.4.12. Express không được hỗ trợ với 0.5.x (sử dụng rủi ro riêng). Tôi khuyên bạn nên sử dụng 0,4 trên linux – Raynos

Trả lời

17

Các yêu cầu thứ hai là /favicon.ico Hãy thử điều khiển đăng nhập request.url của bạn trong trình xử lý yêu cầu http_server của bạn, bạn sẽ thấy đầu tiên là url trình duyệt và biểu tượng tiếp theo.

+0

vì vậy, làm cách nào để chúng tôi giải quyết vấn đề này? – Asool

-1

Nếu bạn đang sử dụng chrome: Khi bạn viết chrome của bạn gửi yêu cầu nhận để kiểm tra url trước khi bạn nhấn enter.

Cố gắng ghi nhật ký url trung gian console.log (req.url) đặt giao diện điều khiển của bạn sang bên broswer của bạn rồi bắt đầu viết url, bạn sẽ thấy bảng điều khiển ghi nhật ký có quyền truy cập.

Các vấn đề liên quan