簡體   English   中英

如果我在 express 中指定 app.engine,我還需要 app.set 視圖引擎嗎?

[英]If i specify app.engine in express, do i need to app.set view engine also?

我現在正在學習 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-mate 渲染函數渲染的 .ejs 文件?為什么我仍然需要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 在內部加載模塊。 如果未設置視圖引擎屬性,則必須指定視圖文件的擴展名。 否則,您可以省略它。 我希望這個解釋能讓你更好地理解 ;-) 我從經驗中知道最好堅持文檔你可以在這里閱讀更多關於它的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM