当地的玉佛寺

在我的Jade模板中使用当地人时遇到问题。 我的代码是…

function(req, res) { BlogPostModel.find({}, function(e, data) { if (e) throw e; posts = data; var path = __dirname + "/view/admin/blog.jade", template = fs.readFileSync(path, "utf8"), options = { filename: path }, fn = jade.compile(template, options), html = fn(posts); res.end(html); }); 

上面的代码呈现很好,但我不得不使'数据'成为一个全局variables。 我宁愿将“数据”直接传递给我的函数调用。 但是当我这样做的时候,我得到了一个来自Jade的'variables未定义'的错误。 谁能告诉我为什么'数据'超出了范围?

谢谢,

FBZ

所以这不是一个范围问题。 我不得不打电话给我的“当地人”。 喜欢这个…

 BlogPostModel.find({}, function(e, locals) { if (e) throw e; var path = __dirname + "/view/admin/blog.jade", template = fs.readFileSync(path, "utf8"), options = { filename: path }, fn = jade.compile(template, options), html = fn(locals); res.end(html); }); 

似乎奇怪的是,Jade接受任何名字的全局variables,但是一个局部variables必须被称为“locals”。 无论如何,sorting。