构建一个MEAN应用程序,以便Express可以找到所有的Jade文件

时间:2014-08-05 12:27:54

标签: node.js angularjs express module pug

我现在正在构建一个MEAN应用程序。我真的需要开始模块化应用程序,但现在我的Express服务器配置为在一个文件夹中查找Jade视图

app.set('views', path.join(__dirname, '/app/views'));
app.set('view engine', 'jade');

这些帖子的作者显示了分散在不同模块目录中的应用程序的视图文件。

如果我现在尝试这样做,我的Express服务器将无法看到它们。我该怎么做才能让Express能够找到所有Jade的观点?

2 个答案:

答案 0 :(得分:0)

两种解决方案:

  • 您可以使用名为views的基本文件夹,并在views内创建子文件夹。 例如,views/menu/views/header/。要使用它,你必须这样做 在Express中声明basedir,以便Jade知道在哪里看你的 通过app.locals.basedir = __dirname + "/views";进行观察。然后, 在您的Jade文件中,使用include /header/a.jadeinclude /menu/item1.jade等...
  • 使用Express App子装配功能。这允许你模块化 你的主应用程序进入小应用程序,它们都有自己的路线,视图 等等......您可以观看此nice video tutorial by TJ Holowaychuk以了解详情。

这对你有帮助吗?

答案 1 :(得分:0)

我刚开始在渲染调用中使用模块前缀,并将我的视图基目录设置为模块的父目录。所以,如果我开始:

app/views/page1.jade
app/views/page2.jade

正在做res.render("page1"),我重组为:

app/module1/page1.jade
app/module2/page2.jade

然后我app.set("views", "app")然后使用res.render("module1/page1")进行渲染。