Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 动态解析Jade内容_Node.js_Mongodb_Express_Compilation_Pug - Fatal编程技术网

Node.js 动态解析Jade内容

Node.js 动态解析Jade内容,node.js,mongodb,express,compilation,pug,Node.js,Mongodb,Express,Compilation,Pug,我有一个场景需要从数据库(MongoDB)解析JADE 我已经创建了一个数据访问类,其中包含一个“method”findbytle来返回所需的JADE数据,它可以正常工作 app.get('/something', function (req, res) { blogProvider.findByTitle('Structure', function(error, blog){ if (error) { console.log('Trying to find blog

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

我已经创建了一个数据访问类,其中包含一个“method”findbytle来返回所需的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有extends或include(在我的例子中我需要它),它们就不会被编译

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


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

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

extends layout

block append content
 include includes/header
 div.container
    !{someContent}
    include agile
 include includes/footer
然后按如下方式发送html(问题上文):

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

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

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

extends layout

block append content
 include includes/header
 div.container
    !{someContent}
    include agile
 include includes/footer
然后按如下方式发送html(问题上文):

res.render('someTemplate.jade', {someContent: html});
仍然不理想,因为并非所有内容都是动态的。如果有人找到更好的解决方案,请告诉我