Javascript 将客户端数据传递到url express路由
我不熟悉Node/Express,但我正在将jQuery/Bootstrap应用程序转换为一个带有节点后端的应用程序,用于路由和其他服务器端任务。当前,当用户单击某个链接时,它会将数据传递到url,然后在我进入新页面时获取该url。像这样:Javascript 将客户端数据传递到url express路由,javascript,jquery,node.js,express,Javascript,Jquery,Node.js,Express,我不熟悉Node/Express,但我正在将jQuery/Bootstrap应用程序转换为一个带有节点后端的应用程序,用于路由和其他服务器端任务。当前,当用户单击某个链接时,它会将数据传递到url,然后在我进入新页面时获取该url。像这样: $("#parking_icon").on("click", function() { window.location = "_views/parkingLot.html?37.415912?-121.897520"; }); va
$("#parking_icon").on("click", function() {
window.location = "_views/parkingLot.html?37.415912?-121.897520";
});
var urlQuery = window.location.search.substring(1);
var mapLatLon = urlQuery.split("?");
var centerCoords = [parseFloat(mapLatLon[1]), parseFloat(mapLatLon[0])];
然后我在我的parkingLot.html
页面上获取并使用这些数据。像这样:
$("#parking_icon").on("click", function() {
window.location = "_views/parkingLot.html?37.415912?-121.897520";
});
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()
?我确信这是一个noob问题,所以请原谅我,因为我对Node/Express还不熟悉。我正在使用ejs模板引擎,如果这有什么不同的话 更抽象地考虑一下,如果您有一条带有查询字符串的/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";
});
哇,谢谢你的快速回复。我没想到会那么容易,我说我对这件事还不熟悉。。对于查询字符串,为什么它与我使用它的方式相比是正确的(?37.415912?-121.897520
)只是好奇而已。这真的很重要,还是这只是最佳实践?@austinruex是的,这很重要,否则查询字符串解析器将无法解析传递的查询字符串。