Node.js,express.js&hogan.js:部分在第二次刷新后无法正确加载

我有一个快速的3应用程序运行良好,但有什么问题,当我第二次刷新网站。

var x = {footer:"footer", header:"header"} exports.index = function(req, res){ res.render("index.html", {jow: "ieps", partials:x}) } 

当我第一次去我的网站时,一切都很好,所有的部分渲染很好。

但是,当刷新我有这个错误:

 Error: ENOENT, open '/Users/kevinvanhove/Documents/work/projects/basing/business/klanten/javascript/nodeJS/express/basing/views/<h2>wow</h2>.html' 

但是,当删除xvariables并直接将对象文字添加到res.render参数列表中时,再次正常工作。

 exports.index = function(req, res){ res.render("index.html", {jow: "ieps", partials:{footer:"footer", header:"header"}}) 

}

更新:index.html视图

 {{> header}} <h1>jow en {{jow}}</h1> {{> footer}} 

查看这个藤蔓快速浏览:

https://vine.co/v/M7BYi75pdrh

有些见解将不胜感激,谢谢。

像上面评论一样,Consolitate.js改变了原始对象: https : //github.com/tj/consolidate.js/blob/master/lib/consolidate.js#L124

我已经解决了这个问题,总是使用部分的克隆:

 // ... var _ = require('underscore'); var partials = { layout: 'layout' }; app.get('/', function(request, response) { response.render('index', { partials: _.clone(partials) }); }); 

这不是最好的解决scheme,但它的工作原理。

整合.js可能应该使用不同的对象来caching部分内容。 而我设法做到这一点,但这不适用于所有其他的引擎。