gpt4 book ai didi

express - 是否可以在 Sails.js 中使用多个模板引擎?

转载 作者:行者123 更新时间:2023-12-04 21:37:23 25 4
gpt4 key购买 nike

表达

在 vanilla Express.js 中,以下代码运行良好。

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 ,两个模板都由适当的引擎呈现。

您还可以像这样指定默认引擎:
app.set('view engine', 'haml');
app.get('/', function(req, res) {
res.render('slash'); //looks for slash.haml in views directory
});

在 Express 中,默认 View 引擎仅在 the extension is omitted 时使用。 .

sails

在 Sails.js 中,似乎指定了引擎 config/view.js是唯一使用过的引擎。

如果我尝试直接指定扩展名,则会收到以下错误:
error: Ignoring attempt to bind route (/barn) to unknown view: barn.jade

是否可以在 Sails 中使用不同的 View 引擎而无需大量的巫术?

最佳答案

简短而最准确的答案是否定的。

出于无聊,我看了一下这个问题,并深入研究了sails中的 View 引擎代码。如果有兴趣,您还可以通过转到目录在您的sails 项目中找到这些文件:

node_modules\sails\lib\hooks\views



您会发现,开箱即用,设置为仅使用一个 View 引擎。在上面的目录中,您会找到一个名为 configure.js 的文件,这是设置自定义 View 引擎背后的逻辑发生的地方。

这是代码中的一个片段
// 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 中传递的引擎并从那里开始。

关于express - 是否可以在 Sails.js 中使用多个模板引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34688883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com