【发布时间】:2015-09-06 22:44:57
【问题描述】:
我有一个包含不同 URL 图像的集合。我检索了我想要的 URL,并希望将其传递给玉模板,例如:
app.get('/',function(req,res){
mongoDB.getUsedHomePageOne(function(err, result){
if(!err){
console.log("getUsedHomePageOne : ");
console.log(result);
app.locals['homePageImg'] = result.url;
}
});
app.render('userPageEjs.html',function(err,renderedData){
console.log(renderedData);
res.send(renderedData);
});
});
getUsedHomePageOne 看起来像:
DBMongo.prototype.getUsedHomePageOne = function(callback){
this.homePageColl.findOne({used:1}, callback);
};
在翡翠模板中:
<img src="<%= homePageImg %>"/>
因此,除非我加载两次页面,否则这将不起作用,我认为是因为它被缓存并且计算速度足够快或其他什么。
正确的做法是什么?
PS:我第二次加载页面,一切都会正确加载。
PS2:我不想延迟图像的渲染,我想在图像准备好后加载,但无论如何都要先渲染 HTML 页面。
【问题讨论】:
-
这不是 Jade 模板,而是 EJS 模板。
-
是的,我改了标签但没改标题,感谢指点
-
你的意思是它不起作用?图像是否加载?您能否进一步扩展刷新问题?
-
将
app.render()函数放在getUsedHomePageOne()回调中。 -
看看我的 PS2,我知道我可以这样做,但我想渲染页面,然后在图像准备好时加载。