4

我有一个单页 Web 应用程序,它在客户端使用骨干网,在服务器上使用节点(Sails)。

我目前在客户端使用 lodash.underscore 作为模板引擎,在服务器上使用 kiwi。

我希望通过渐进增强来实现 pushstate。即客户端和服务器将共享相同的模板文件。

这意味着他们需要使用相同的模板引擎;我决定使用下划线/lodash。

在 Sails config\views.js 中,这意味着您可以使用下划线作为模板引擎。问题是我无法弄清楚如何做到这一点。我已将它包含在我的 package.json 中并设置

'engine': 'underscore'

然后在启动我的应用程序时出现错误 - “Function.app.engine 需要回调函数”

如果我将引擎设置为“kiwi”、“jade”、“ejs”等,那么它会起作用。

知道我做错了什么吗?

4

2 回答 2

0

我不确定我是否完全理解您的要求,但是,我在服务器端视图中使用了下划线模板,配置如下:

config/views我将引擎设置为 ejs 时:

engine: 'ejs',

在我Gruntfile.js的设置中:

var templateFilesToInject = [
    'linker/**/*.ejs'
];
于 2013-12-18T23:57:24.810 回答
0

Consolidate.js从0.3.1版本开始支持Underscore作为引擎,从0.10.0版本开始支持 Lodash

Sails.js支持通过 Consolidate 与 Express 兼容的所有视图引擎,但包含 Consolidate 作为直接依赖项的 Sails 的第一个版本仅为 0.12.0-rc2。我不确定 Sails 在此之前如何管理其他模板引擎,但文档表明 Underscore 自 0.10.0 以来已被支持作为视图引擎

npm i --save underscore您应该验证您正在使用的 Sails 版本是否支持 Underscore 作为视图引擎,并在尝试使用它之前确保您这样做。

于 2016-01-09T02:12:11.640 回答