【问题标题】:Dynamically parsing Jade Content动态解析 Jade 内容
【发布时间】:2013-10-29 07:48:28
【问题描述】:

我有一个场景需要从数据库 (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 并让编译器引入扩展和包含。

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

【问题讨论】:

    标签: node.js mongodb express compilation pug


    【解决方案1】:

    我找到了一个解决方法,而不是一个完整的解决方案。这基本上是创建一个(模板的)模板,比如

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

    然后将html发送到(问题上方)如下:

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

    仍然不理想,因为并非所有内容都是动态的。如果有人找到更好的解决方案,请告诉我...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多