node.js - 按功能组织项目时如何渲染?
问题描述
我已经改变了我的项目的结构,现在我按功能对内容进行分组。不是将所有路由放在“Routes”中,而是将所有控制器放在“控制器”中,等等。
我发现新方法要好得多,但我发现要渲染本地文件,因为它不再在“views”文件夹中,我必须这样做:
res.render("../auth/login");
// 大概我们在视图中,所以我们上去然后 auth/login.ejs
在 login.ejs 中我必须这样做:
<%include ../views/partials/header %>
这是按功能使用项目结构时要遵循的方法吗?
解决方案
用于模板的文件夹express称为views,默认启用:
app.set('views', './views'); //this code runs when you call: var app = express();
如果要设置 express 将查找视图的多个位置,可以通过调用:
app.set('views', __dirname + '/foo');
现在,express 将在views
和foo
文件夹中查找要使用的模板。
如果要设置多个文件夹,可以app.set
多次调用,或者简单地将文件夹数组传递给app.set
:
app.set('views', [__dirname + '/foo', __dirname + '/bar']);
现在,express 将在views
、foo
和bar
文件夹中查找模板。
假设您foo.ejs
在foo
文件夹和文件夹bar.ejs
中bar
。您可以像这样访问这些模板:
<%- include 'foo' %>
<%- include 'bar' %>
这个问题是您问题的一个很好的参考。
推荐阅读
- ios - UIButton action(rx.tap) 使用 RxSwift 响应不同的 PublishSubjects
- database-design - 第二范式 / 识别关系 / FK
- django - 如何找出我的 Django 代码的哪一行正在创建特定的 postgres 查询?
- node.js - 将 Gmail 与 OAuth 和 Nodemailer 一起使用的最终方法是什么?
- c++ - 使用 QT/C++ 从串行 (UART) STM32 保存到文本文件
- r - 如何检查一列中的行是否存在于R中的另一列中
- c# - 用于观察者模式的 C# 浮点包装器
- php - 有什么方法可以使用 laravel 远程访问 sqlite mikrotik 数据库
- laravel-5 - php vendor/bin/phpunit 空结果 Laravel 5
- python - 如何在 Micropython 中编写一个可以用参数初始化的类?