如果我指定app.engine在快车,我需要app.set视图引擎也吗?



我现在正在学习Node.js和模板主题。首先,我只使用EJS并配置app.set('view engine', 'ejs')使其正常工作。接下来创建布局,我安装了ejs-mate并在我的代码中添加了app.engine('ejs', require('ejs-mate'))。但它到底是做什么的呢?正如我所理解的app.set是配置我的服务器视图引擎为EJS。由于这个设置,我们的服务器将知道如何将模板的代码解析为纯HTML。res.render将渲染后的HTML发送给客户端。通过app.engine('ejs', require('ejs-mate')我指定。ejs文件由ejs-mate渲染功能渲染?为什么我还需要app.set('view engine', 'ejs')?没有它似乎也能工作。

我会试着解释为什么你需要app.set('view engine', 'ejs')

使用EJS的基本设置

let express = require('express');
let app = express();
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
res.render('index', {foo: 'FOO'});
});
app.listen(4000, () => console.log('Example app listening on port 4000!'));

在视图引擎为set之后,您不必指定引擎或负载Express会在内部加载这个模块。如果视图引擎属性未设置时,必须指定视图文件的扩展名。否则,可以省略它。我希望这个解释能让你更好地理解;-)我从经验中知道,最好坚持使用文档你可以在这里了解更多。

相关内容

  • 没有找到相关文章

最新更新