मैं अपने एक्सप्रेस आवेदन पर कुछ प्राप्त मार्गों मिल गया है कहते हैं:नोड.जेएस एक्सप्रेस मार्ग नामकरण और ऑर्डरिंग: प्राथमिकता कैसे निर्धारित की जाती है?
// music albums
app.get('/api/albums', routes.albums.getAlbums);
app.get('/api/albums/:id', routes.albums.getAlbum);
app.get('/api/albums/artwork', routes.albums.getAlbumArtwork);
और मैं पालन jQuery AJAX के स्निपेट का उपयोग कर उन्हें हिट करने के लिए प्रयास करते हैं:
$("#retrieveAlbumArtwork").on("click", function() {
$.ajax({
url: "api/albums/artwork",
type: "GET",
data: {
artist: $("#albumArtist").val(),
title: $("#albumTitle").val()
},
// ... callbacks and such
किसी कारण के लिए, यह कॉल हिट /:id
पैरामीटर के साथ, दूसरे हैंडलर, स्पष्ट /artwork
मार्ग के बजाय। उन्हें स्वैप करने से उन्हें अपेक्षित कार्य करने की सुविधा मिलती है:
// music albums
app.get('/api/albums', routes.albums.getAlbums);
app.get('/api/albums/artwork', routes.albums.getAlbumArtwork);
app.get('/api/albums/:id', routes.albums.getAlbum);
क्या कोई यह समझा सकता है कि यह क्यों हो रहा है? मुझे लगता है कि एक्सप्रेस एक क्वेरी पैरािंग (/albums/artwork?artist=artistName&title=albumTitle
) बनाम एक आईडी पैरा (/albums/23453243
) की पहचान करने के लिए पर्याप्त स्मार्ट होगा और उचित रूप से मार्ग होगा, लेकिन ऐसा लगता है कि ऐसा नहीं लगता है?
हाँ, दूसरा तरीका टीजे होलोवाचुक (एक्सप्रेस का निर्माता) उनके उदाहरणों में उपयोग करता है: https://github.com/visionmedia/express/blob/master/examples/route-separation/index.js#L29 – verybadalloc