sails.js:在风帆中使用尘埃0.10.5

时间:2014-10-13 14:09:14

标签: sails.js dust.js

我正在尝试将项目从0.9.9迁移到0.10.5

我们在我们的项目中使用了灰尘模板引擎而不是默认的ejs引擎。

config / views.js文件的内容

module.exports.views = {
  engine: 'dust',
  layout: 'layout'
};

在我的控制器中,我能够像这样呈现这个视图

res.view('layout', obj);

然而,在风帆0.10.5中,当我举起帆时,首先我得到了这个警告

warn: Sails' built-in layout support only works with the `ejs` view engine.
warn: You're using `dust`.
warn: Ignoring `sails.config.views.layout`...

然后,当我尝试按照之前的方式渲染视图时,出现以下错误:

error: Sending 500 ("Server Error") response: 
 Error: ENOENT, open '/.dust'

 { [Error: ENOENT, open '/.dust'] errno: 34, code: 'ENOENT', path: '/.dust' }

知道在0.10.5中执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

layout属性不适用于灰尘(仅适用于ejs)。将布局设置为false以使警告消失。无论如何,你想使用Dust的内置支持部分和阻止。

使用res.view('layout', obj);表示您希望存在名为views/layout.dust的文件。在0.10之前,sails包含来自config / views.js的layout属性作为路径的一部分。

所以我最好的猜测是,您的res.view()调用实际上是以空字符串作为第一个参数调用的,并且它没有因为您尝试渲染名为layout的内容而中断。我会检查您的调用,以确保您使用实例化变量调用res.view()