2017-03-06 3 views
0

私はNode/Expressを初めて使用していますが、ルーティングとその他のサーバーサイドのタスク用にノードバックエンドを使用するアプリケーションにjQuery/Bootstrapアプリケーションを変換しています。現在、ユーザーがリンクをクリックすると、URLにデータが渡され、新しいページに移動したときに取得します。このように:クライアントデータをURLエクスプレスルートに渡す

$("#parking_icon").on("click", function() { 
     window.location = "_views/parkingLot.html?37.415912?-121.897520"; 
    }); 

次に、私のparkingLot.htmlページでそのデータを取得して使用します。このように:

var urlQuery = window.location.search.substring(1); 
var mapLatLon = urlQuery.split("?"); 
var centerCoords = [parseFloat(mapLatLon[1]), parseFloat(mapLatLon[0])]; 

私は急行ルートを使用して変換しようとしていますが、これを達成する方法が正確にはわかりません。 (私は上のものに似た約20のボタンを持っていますが、すべてが異なる座標を渡します)。私はこれと同じように、それぞれ別々のルートを作成することでこれを達成できることを知っています。

app.get('/parkingLot?37.415912?-121.897520', function(req, res) { 
    res.render('parkingLot', { 
     title: 'testing ParkingLotPage' 
     }); 
    }); 

しかし、簡単な方法が必要なようです。 app.get()を使用しないでください。私はノード/エクスプレスで作業していることが初めてであるので、これはノーブの質問であると確信していますので、私を許してください。私はそれが何か違いがあれば、ejsテンプレートエンジンを使用しています。

答えて

1

もう少し抽象的に考えると、/parkinglotのクエリ文字列のルートがある場合は、そのクエリ文字列をルート上で直接処理できます。

app.get('/parkinglot', (req, res) => { 
    let lat = req.query.lat; 
    let long = req.query.long; 

    res.render('parkinglot', { 
    title: '', 
    data: { 
     lat: lat, 
     long: long 
    } 
    }); 
}); 

はあなたが適切?&

$("#parking_icon").on("click", function() { 
    window.location = "_views/parkingLot?lat=37.415912&long=-121.897520"; 
}); 
+0

うわーで区切られたすべてのキーと値のペアで始まるkey=value構文を使用してクエリ文字列を構築していることを確認し、迅速な対応をありがとうございました。私はそれが簡単だろうとは思っていませんでした。私はこれを初めて知ったと言いました。クエリ文字列については、なぜそれが正しいのか( '?37.415912?-121.897520')好奇心が強いのですか?それは実際には重要なのでしょうか? –

+0

@AustinTruexはいそれは重要です。そうでなければ、クエリ文字列パーサは渡されたクエリ文字列を解析できません。 – peteb

関連する問題