2017-03-06 27 views
0

我是新來的節點/快遞,但我將我的jQuery /引導應用程序到應用程序與後端節點路由和其他服務器端的任務。目前,當用戶點擊一個鏈接時,它會將數據傳遞到我到達新頁面後我抓取的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()嗎?我相信這是一個菜鳥問題,所以請原諒我,因爲我是新手,使用Node/Express。如果這有什麼不同,我正在使用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 
    } 
    }); 
}); 

確保你正確地與key=value語法與?開始,由&

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

哇分隔的所有鍵值對構建您的查詢字符串,謝謝你的快速反應。我不認爲這將是容易的,我說我是新來這。對於查詢字符串,這是爲什麼正確的VS方式,我有它('?37.415912?-121.897520')只是好奇。這實際上是重要還是僅僅是最佳實踐? –

+0

@AustinTruex是它的事,否則查詢串解析器將無法解析傳遞的查詢字符串。 – peteb

相關問題