1

我有一个场景,我需要从数据库(MongoDB)中解析 JADE。

我创建了一个带有“方法”findByTitle 的数据访问类来返回所需的 JADE 数据并且它可以工作。

app.get('/something', function (req, res) {
  blogProvider.findByTitle('Structure', function(error, blog){
    if (error) {
        console.log('Trying to find blog by title, an error has occured ' + error);
    } else {
        var jade = require('jade');
        var fn = jade.compile(blog.body, {filename:'structure.jade'});
        var html = fn();
        res.send(html);
    }
});

});

以上成功地从数据库中即时编译 JADE 并正确返回。我遇到的问题是如果数据库中的 JADE 扩展或包含(在我的情况下我需要),它们没有被编译......

除了手动存储所有扩展和包含并自然修复所有缩进之外,似乎没有办法“编译”JADE 并让编译器引入扩展和包含。

正如您在上面看到的,我试图提供一个有效但“虚拟”的文件,以便编译器可以找到其他需要的文件。我浏览了文档并没有找到解决方法,有什么想法吗?

4

1 回答 1

1

I found a work around, not exactly a full solution. Which is basically to create a template (of a template), something like

extends layout

block append content
 include includes/header
 div.container
    !{someContent}
    include agile
 include includes/footer

And then send the html in (above in the question) as follows:

res.render('someTemplate.jade', {someContent: html});

Still not ideal as not all the content is dynamic. If anyone finds a better solution, please let me know ...

于 2013-10-28T23:48:28.440 回答