在vanilla Express.js中,以下代码运行良好。
[img]" onmouseover="alert(document.cookie);[/img]
只要var app = require('express')();
app.get('/jade', function(req, res) {
res.render('slash.jade');
});
app.get('/ejs', function(req, res) {
res.render('slash.ejs');
});
app.listen(1338);
中存在模块,两个模板都由适当的引擎呈现。
您也可以指定默认引擎:
node_modules
在Express中,默认视图引擎仅在the extension is omitted时使用。
在Sails.js中,似乎指定引擎app.set('view engine', 'haml');
app.get('/', function(req, res) {
res.render('slash'); //looks for slash.haml in views directory
});
是唯一使用过的引擎。
如果我尝试直接指定扩展名,则会收到以下错误:
config/view.js
在Sails中是否可以使用不同的视图引擎而没有大量的伏都教?
答案 0 :(得分:1)
简短而准确的答案是否定的。
出于无聊的烦恼,我看了一下这个问题并对帆中的视图引擎代码做了一些深入研究。如果有兴趣,您也可以通过转到以下目录在您的sails项目中找到这些文件:
node_modules \帆\ LIB \钩\观点
你会发现,开箱即用的风帆,设置为仅使用一个视图引擎。在上面的目录中,您将找到一个名为configure.js的文件,这是设置自定义视图引擎的逻辑发生的地方。
以下是代码
的摘录// Normalize view engine config and allow defining a custom extension
if (_.isString(sails.config.views.engine)) {
var viewExt = sails.config.views.extension || sails.config.views.engine;
sails.config.views.engine = {
name: sails.config.views.engine,
ext: viewExt
};
}
// Get the view engine name
var engineName = sails.config.views.engine.name || sails.config.views.engine.ext;
不幸的是,没有循环来设置多个引擎。 Sails只使用参数sails.config.views.engine中传递的引擎并从那里开始。