【问题标题】:node js (with ejs view engine) give undefined variable on the viewnode js(带有ejs视图引擎)在视图上给出未定义的变量
【发布时间】:2014-09-11 14:17:58
【问题描述】:

我已经为此工作了几个小时,但仍然无法到达任何地方。我有一个视图,它试图动态创建一个 geojson 文件并将其作为变量返回到节点视图。该变量在到达 res.render 行之前不是空的,但是当它加载视图时,结果始终是未定义的。

app.get('mymap', function(req, res, next){
    var featureCollection= {
            type : 'FeatureCollection',
            features : new Array()
        };

    Shapes.find({'id' : 778899}, function(err, data){
            data.forEach(function(d){
                collection.features.push(d);
            });
            res.render('mymap.ejs', { geojson: featureCollection});
        });
});

这是我打电话来查看视图上是否有东西

 var mymap = '<%- geojson%>';
  alert('Current values ' + mymap.type);

不太确定出了什么问题。我什至尝试只用多个属性组成一个变量,例如:

var test = { place: 'Here and There', size : 5555 }
res.render ('mymap.ejs', { geojson: test });

仍然没有任何反应。

【问题讨论】:

    标签: node.js mongoose pug ejs


    【解决方案1】:

    好吧,您的代码中有错字:

    var mymap = '<%- geojson%>';
    

    应该是:

    var mymap = '<%= geojson %>';
    

    更准确地说,如果您想从服务器端读取 Javascript 对象,我建议将其作为 JSON 字符串传递:

    var mymap = JSON.parse('<%= JSON.stringify(geojson) %>');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-09
      相关资源
      最近更新 更多