2011-12-14 48 views
36

Hãy nói rằng tôi đã nhận được con đường như thế này:Node.js/tốc tuyến với get params

app.get('/documents/format/type', function (req, res) { 
    var format = req.params.format, 
     type = req.params.type; 
}); 

Vì vậy, nếu tôi thực hiện yêu cầu như

http://localhost:3000/documents/json/mini 

ở định dạng của tôi và gõ các biến sẽ được ' json 'và' mini 'tương ứng, nhưng nếu tôi yêu cầu như

http://localhost:3000/documents/mini/json 

không. Vì vậy, câu hỏi của tôi là: làm thế nào tôi có thể nhận được các biến tương tự theo thứ tự khác nhau?

+1

Bạn không 'tài liệu/mini/json' là' định dạng == mini' và 'kiểu == json '. URL không phải là các thông số không theo thứ tự – Raynos

Trả lời

110

Tuyến đường của bạn không phải là ok, nó phải là như thế này (với ':')

app.get('/documents/:format/:type', function (req, res) { 
    var format = req.params.format, 
     type = req.params.type; 
}); 

Ngoài ra bạn không thể trao đổi trật tự tham số không may. Để biết thêm thông tin về req.params (và req.query), hãy xem tham khảo api here.

+0

alessioalex Cảm ơn bạn đã trả lời! – Erik

+1

// var khử trùng = yêu cầu ('chất khử trùng'); định dạng var = sanitizer.escape (định dạng req.params.); Bạn thực sự nên khử trùng kết quả. Hoặc nếu không trang web của bạn có lỗ hổng HUGE – user3806549

17

xem xét sẽ cho thường được sử dụng định dạng domain.com/test?format=json&type=mini, sau đó bạn có thể dễ dàng nhận được nó qua

app.get('/test', function(req, res){ 
    var format = req.query.format, 
     type = req.query.type; 
}); 
+0

Cảm ơn bạn. Câu trả lời của bạn cũng hữu ích cho tôi! – Erik

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