は、私はいくつかは、私のExpressのアプリケーション上でルートをGET持って言う:Node.js Expressルートの命名と順序付け:優先順位の決定方法は?
// 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
を2番目のハンドラは/: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);
誰かがこれがどうして起こっているのか正確に説明できますか?私はエクスプレスがidパラメータ(/albums/23453243
)とクエリ文字列(/albums/artwork?artist=artistName&title=albumTitle
)を識別し、適切に経路を決めるのに十分だと思いますが、これはそうではありませんか?
2番目の方法は、TJ Holowaychuk(Expressの作成者)が彼の例で使用する方法です:https://github.com/visionmedia/express/blob/master/examples/route-separation/index.js#L29 – verybadalloc