首页 > 解决方案 > 按功能组织项目时如何渲染?

问题描述

我已经改变了我的项目的结构,现在我按功能对内容进行分组。不是将所有路由放在“Routes”中,而是将所有控制器放在“控制器”中,等等。

我发现新方法要好得多,但我发现要渲染本地文件,因为它不再在“views”文件夹中,我必须这样做:

res.render("../auth/login");// 大概我们在视图中,所以我们上去然后 auth/login.ejs

在 login.ejs 中我必须这样做:

<%include ../views/partials/header %>

这是按功能使用项目结构时要遵循的方法吗?

标签: node.jsexpressejs

解决方案


用于模板的文件夹express称为views,默认启用:

app.set('views', './views'); //this code runs when you call: var app = express();

如果要设置 express 将查找视图的多个位置,可以通过调用:

app.set('views', __dirname + '/foo');

现在,express 将在viewsfoo文件夹中查找要使用的模板。

如果要设置多个文件夹,可以app.set多次调用,或者简单地将文件夹数组传递给app.set

app.set('views', [__dirname + '/foo', __dirname + '/bar']);

现在,express 将在viewsfoobar文件夹中查找模板。

假设您foo.ejsfoo文件夹和文件夹bar.ejsbar。您可以像这样访问这些模板:

<%- include 'foo' %>

<%- include 'bar' %>

这个问题是您问题的一个很好的参考。


推荐阅读