Node.js 节点js(带有ejs视图引擎)在视图上提供未定义的变量
我已经为此工作了几个小时了,但还是一事无成。我有一个视图,它尝试动态创建geojson文件,并将其作为变量返回到节点视图。变量在到达res.render行之前不是空的,但是当它加载视图时,结果总是未定义的Node.js 节点js(带有ejs视图引擎)在视图上提供未定义的变量,node.js,mongoose,pug,ejs,Node.js,Mongoose,Pug,Ejs,我已经为此工作了几个小时了,但还是一事无成。我有一个视图,它尝试动态创建geojson文件,并将其作为变量返回到节点视图。变量在到达res.render行之前不是空的,但是当它加载视图时,结果总是未定义的 app.get('mymap', function(req, res, next){ var featureCollection= { type : 'FeatureCollection', features : new Array()
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 mymap = '<%- geojson%>';
应该是:
var mymap = '<%= geojson %>';
更准确地说,如果您想从服务器端读取Javascript对象,我建议将其作为JSON字符串传递:
var mymap = JSON.parse('<%= JSON.stringify(geojson) %>');
var mymap = JSON.parse('<%= JSON.stringify(geojson) %>');