我的服务器端有一个端点定义:
app.get('/', function(req, res) {
res.send(densityList);
});
当我点击http://localhost:port/
时,如果我不正确,这就是在服务器上点击的端点。
在点击主页后,我希望向客户端发送一个全局定义的densityList(已填充),客户端将使用该列表来填充地图。
这是我的客户端代码:
<script>
$(document).ready(function() {
$.get('/', {}, function(data){
L.map.accessToken = 'pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpandmbXliNDBjZWd2M2x6bDk3c2ZtOTkifQ._QA7i5Mpkd_m30IGElHziw'
console.log("before creating map");
console.log(data);
var mymap = L.map('mapid').setView([37.8, -96], 4);
console.log("creating map")
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpandmbXliNDBjZWd2M2x6bDk3c2ZtOTkifQ._QA7i5Mpkd_m30IGElHziw', {
maxZoom: 18,
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'mapbox.streets'
}).addTo(mymap);
var heat = L.heatLayer(data, {radius: 25}).addTo(mymap);
});
});
</script>
我相信这行代码应该捕获服务器发送的内容:
$.get('/', {}, function(data){
然而,当我这样做时:
console.log(data)
打印整个html文件。有人可以建议如何在首页的第一个点击发送这些数据吗?
答案 0 :(得分:0)
我认为您应该从{}
中移除$.get() syntax
它应该像这样:
$.get("/", function(data, status){
L.map.accessToken = 'pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpandmbXliNDBjZWd2M2x6bDk3c2ZtOTkifQ._QA7i5Mpkd_m30IGElHziw'
console.log("before creating map");
console.log(data);
var mymap = L.map('mapid').setView([37.8, -96], 4);
console.log("creating map")
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpandmbXliNDBjZWd2M2x6bDk3c2ZtOTkifQ._QA7i5Mpkd_m30IGElHziw', {
maxZoom: 18,
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
'<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="http://mapbox.com">Mapbox</a>',
id: 'mapbox.streets'
}).addTo(mymap);
var heat = L.heatLayer(data, {radius: 25}).addTo(mymap);
console.log("Data: " + data + "\nStatus: " + status);
});
希望有所帮助:)
答案 1 :(得分:0)
您需要像以下问题一样正确安排路由和静态文件:node.js and express: possible to skip from route back to middleware (static)?
例如,您可以在$.get
中包含一些参数,并在路由器定义中进行一些条件检查。