2016-08-17 4 views
1

Wie verwende ich Backend-Variable in EJS-Skript-Abschnitt?

<!-- 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}); 
       }); 
      }); 
     }); 
    }); 

Ich habe gerade erfahren, NodeJS für eine Woche auszudrücken

ich auf sie eine Karte mit Luftgütezeichen machen wollen und bekam jetzt ein Problem,

Ich erhalte Daten von rethinkDB und ich kann nur auf die Daten mit <% =%>

zugreifen

Wie verwende ich die Variablen cor, time und pm25 im Frontend-Skript?

Ich möchte cor in 'var Data' in meinem Js-Code verwenden.

Gibt es einen einfachen Weg, dies zu tun?

mir bitte helfen

Antwort

0

ein Element Verwendung für Datenelemente zu speichern.

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

In Ihrem Skript-Tag können Sie auf

var time = document.getElementById("script").getAttribute('data-time'); 

ähnlich können Sie andere Variablen verwenden.

+0

vielen Dank! Es klappt! – zero0o0o