【发布时间】:2014-11-14 01:30:33
【问题描述】:
我正在用 Node、Express 和 Dust 和 Consolidate 编写一个非常复杂的 CMS。 CMS 有模块和小部件:
- 模块是响应路由和渲染页面的东西
- 小部件是这些页面的片段。
问题是每个Module和Widget都有自己的views文件夹,而Express只允许你设置一个“views directory”,在Dust docs中我什至找不到在哪个目录Dust 查找模板。
我的文件夹结构如下:
- 根
- 模块
- 模块-1
- 模块-n
- module-n-controller.js
- module-n-routes.js
- module-n-view.dust
- 小部件
- 小部件 1
- 小部件-n
- 小部件-n-controller.js
- widget-n-routes.js
- widget-n-view.dust
- 模块
所以,module-n-controller.js 做了这样的事情:
// just pretend that this data came from the widget-n-controller.js
var data = {
"widget" : {
"view": "./widgets/widget-n/widget-n-view",
"data": widgetNData
}
}
res.render('./modules/module-n/module-n-view', data);
然后,在我的 module-n-view.dust 中,我想做这样的事情:
{#widget}
{>"{view}" data=data/}
{/widget}
所以问题是:如何设置这些视图的路径,以及,res.render 是正确的方法还是应该使用灰尘。渲染?
PS:我尝试了 dust.render,但路径的每个变体都出现“错误,找不到模板”。
【问题讨论】:
-
您是否使用 Consolidate 将 Dust 连接到 Express?如果是这样,您将不得不更改其
read()挂钩以添加您的自定义查找逻辑。 -
是的!关于我应该如何做到这一点的任何想法?