在Sails JS中使用下划线/ lodash作为模板引擎

时间:2013-12-18 10:34:01

标签: javascript node.js underscore.js sails.js lodash

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

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

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

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

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

'engine': 'underscore'

我在启动应用程序时遇到错误 - “Function.app.engine需要回调函数”

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

任何想法都是我做错了什么?

2 个答案:

答案 0 :(得分:0)

我不确定我到底知道你的要求,但是,我在服务器端视图中使用了下划线模板,配置如下:

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

engine: 'ejs',

在我的Gruntfile.js我设置了:

var templateFilesToInject = [
    'linker/**/*.ejs'
];

答案 1 :(得分:0)

截至Consolidate.js

support Underscore as an engine version 0.3.1version 0.10.0的Lodash。

Sails.js supports all of the view engines compatible with Express via Consolidate,但将包含Consolidate作为直接依赖关系的Sails的第一个版本是only 0.12.0-rc2。我不确定Sails在此之前是如何管理其他模板引擎的,而是documentation suggests that Underscore has been supported as a view engine since 0.10.0

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