我如何编译多个玉文件

时间:2013-08-07 17:47:14

标签: node.js pug

让我们从以下4个玉器文件开始。

layout.jade

html
    head
        block cms_head
    body
        block cms_body 

home_page.jade

extends layout
block append cms_head
    title home page
block append cms_body
    p superman ate so many different apples 

plugin_a.jade

block append cms_body
    p i got plugged in... genius

plugin_for_jquery.jade

block append cms_head
    script(src="/jquery-1.8.3.js")

所以我可以通过以下方式轻松呈现主页:

app.get("/", function(req, res){
    res.render("home_page");
});

这太棒了,但是为了允许我的应用程序中的可插入性,我想允许他们的视图利用现有模板,并将内容附加/替换/替换插件需要显示的内容。

我要做的是渲染home_page.jade,然后渲染plugin_a.jade和plugin_for_jquery.jade ......基本思路是可以有可变数量的插件,每个插件都将自己的内容添加到视图中

我试过了(显然它不起作用)

for plugin in plugins
    include= plugin.name

关于我如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

据我所知,jade无法读出目录

但使用节点:

var fs = require("fs");   

app.get("/", function(req, res){
    fs.readdir(DIR_OF_PLUGINS, function(err, list){
        res.render("home_page", {"list": list});
    });
});

并在homepage.jade

- for(plugin in list)
   include = plugin


顺便说一下:你应该用

之类的东西构建路由器和函数文档
//router.js // or app.js
var funct = require("routes/functions")
app.get('/', funct.home);

//functions.js
exports.home = function(req, res){