0

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

布局.jade

html
    head
        block cms_head
    body
        block cms_body 

主页.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

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

4

1 回答 1

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){
于 2013-08-09T03:16:43.600 回答