我现在已经在这个工作了几个小时,但仍然无法到达任何地方。我有一个视图,试图动态创建一个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 });
仍然没有任何反应。
答案 0 :(得分:0)
嗯,你的代码中有一个拼写错误:
var mymap = '<%- geojson%>';
应该是:
var mymap = '<%= geojson %>';
更确切地说,如果你想从服务器端读取Javascript对象,我建议将它作为JSON字符串传递:
var mymap = JSON.parse('<%= JSON.stringify(geojson) %>');