在加载页面nodejs时,将数据从服务器发送到客户端

时间:2016-04-01 01:44:30

标签: javascript html ajax node.js express

我的服务器端有一个端点定义:

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 &copy; <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文件。有人可以建议如何在首页的第一个点击发送这些数据吗?

2 个答案:

答案 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 &copy; <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中包含一些参数,并在路由器定义中进行一些条件检查。

相关问题