如何在ejs脚本部分中使用后端变量?

时间:2016-08-17 06:59:23

标签: javascript html node.js express

<!-- begin snippet: js hide: false console: true babel: false -->
<script>
    // initialize the map
    var map = L.map('map').setView([25.037393872113785, 121.56372070312499], 12);
    // load a tile layer
    var baseLayer = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
            {
                attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
                maxZoom: 17
            }).addTo(map);

    var Data = 
    var cfg = {
        "radius": 0.03,
        "maxOpacity": 0.5,
        "scaleRadius": true,
        "useLocalExtrema": true,
        latField: 'lat',
        lngField: 'lng',
        valueField: 'count'
    };
  
    var heatmapLayer = new HeatmapOverlay(cfg).addTo(map);
    heatmapLayer.setData(Data);
 
</script>

//javascript version = 1.7
var express = require('express');
var router = express.Router();
var r = require('rethinkdb');
var rethinkdbHost = "140.109.18.136";
var connection = null;
var waterfall = require('async-waterfall');

r.connect( {host: rethinkdbHost, port: 28015}, function(err, conn) {
    if (err) throw err;
    connection = conn;
    r.db('AQI_inference').table('pm25_one_week')).run(connection, function(err, cursor) {
        if (err) throw err;
        cursor.toArray(function(err, result) {
            if (err) throw err;
                var cor = result.geometry.coordinates;
                var t = result.properties.time;
                var pm25 = result.properties.col;
                console.log(cor, t, pm25);
                router.get('/', function(req, res, next) {
                    res.render('mapTest', {cor: cor,time: t, pm25: pm25});
                 });
            });
        });
    });

我刚学会了nodejs表达一周

我想制作一张带有空气质量标记的地图,现在遇到了一些问题,

我从rethinkDB获取数据,我只能使用&lt;%=%&gt;

访问数据

如何在前端脚本部分使用变量cor,time和pm25?

我想在我的js代码中使用'var Data'中的cor。

有没有简单的方法可以做到这一点?

请帮帮我

2 个答案:

答案 0 :(得分:0)

使用一些元素来存储数据元素。

<div id="script" data-time="<%= time %>" data-cor="<%= cor %>"></div>

在脚本标记中,您可以使用

进行访问
var time = document.getElementById("script").getAttribute('data-time');

同样可以使用其他变量。

答案 1 :(得分:0)

在script标签中,可以将后端JS做成一个字符串,然后赋值给var。这就是我在下面所做的。

pygetwindow