1 原生方案
1.1 server.ts 配置
src/server.ts
app.use(express.static(path.join(__dirname, 'templates')));
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'templates', 'index.html'));
});
1.2 html 页面
src/templates/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
首页
</body>
</html>
2 EJS
模板引擎
2.1 安装
npm install ejs
2.2 server.ts 配置
src/server.ts
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'templates'));
app.get('/', (req, res) => {
res.render('index', { title: '有勇气的牛排博客' });
});
2.3 html 页面
src/templates/index.ejs
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= title %></title>
</head>
<body>
<h1>欢迎来到 <%= title %>!</h1>
<p>这个页面使用 EJS 模板引擎加载.</p>
</body>
</html>

<h2><a id="1__0"></a>1 原生方案</h2>
<h3><a id="11_serverts__2"></a>1.1 server.ts 配置</h3>
<p><code>src/server.ts</code></p>
<pre><div class="hljs"><code class="lang-tsx"><span class="hljs-comment">// 配置静态文件夹</span>
app.<span class="hljs-title function_">use</span>(express.<span class="hljs-title function_">static</span>(path.<span class="hljs-title function_">join</span>(__dirname, <span class="hljs-string">'templates'</span>)));
<span class="hljs-comment">// 路由返回 HTML 页面</span>
app.<span class="hljs-title function_">get</span>(<span class="hljs-string">'/'</span>, <span class="hljs-function">(<span class="hljs-params">req, res</span>) =></span> {
res.<span class="hljs-title function_">sendFile</span>(path.<span class="hljs-title function_">join</span>(__dirname, <span class="hljs-string">'templates'</span>, <span class="hljs-string">'index.html'</span>));
});
</code></div></pre>
<h3><a id="12_html__16"></a>1.2 html 页面</h3>
<p><code>src/templates/index.html</code></p>
<pre><div class="hljs"><code class="lang-html"><span class="hljs-meta"><!DOCTYPE <span class="hljs-keyword">html</span>></span>
<span class="hljs-tag"><<span class="hljs-name">html</span> <span class="hljs-attr">lang</span>=<span class="hljs-string">"en"</span>></span>
<span class="hljs-tag"><<span class="hljs-name">head</span>></span>
<span class="hljs-tag"><<span class="hljs-name">meta</span> <span class="hljs-attr">charset</span>=<span class="hljs-string">"UTF-8"</span>></span>
<span class="hljs-tag"><<span class="hljs-name">title</span>></span>Title<span class="hljs-tag"></<span class="hljs-name">title</span>></span>
<span class="hljs-tag"></<span class="hljs-name">head</span>></span>
<span class="hljs-tag"><<span class="hljs-name">body</span>></span>
首页
<span class="hljs-tag"></<span class="hljs-name">body</span>></span>
<span class="hljs-tag"></<span class="hljs-name">html</span>></span>
</code></div></pre>
<h2><a id="2_EJS__33"></a>2 <code>EJS</code> 模板引擎</h2>
<h3><a id="21__35"></a>2.1 安装</h3>
<pre><div class="hljs"><code class="lang-shell">npm install ejs
</code></div></pre>
<h3><a id="22_serverts__41"></a>2.2 server.ts 配置</h3>
<p><code>src/server.ts</code></p>
<pre><div class="hljs"><code class="lang-tsx"><span class="hljs-comment">// 设置视图引擎为 EJS</span>
app.<span class="hljs-title function_">set</span>(<span class="hljs-string">'view engine'</span>, <span class="hljs-string">'ejs'</span>);
app.<span class="hljs-title function_">set</span>(<span class="hljs-string">'views'</span>, path.<span class="hljs-title function_">join</span>(__dirname, <span class="hljs-string">'templates'</span>));
<span class="hljs-comment">// 路由返回动态渲染的 HTML 页面</span>
app.<span class="hljs-title function_">get</span>(<span class="hljs-string">'/'</span>, <span class="hljs-function">(<span class="hljs-params">req, res</span>) =></span> {
res.<span class="hljs-title function_">render</span>(<span class="hljs-string">'index'</span>, { <span class="hljs-attr">title</span>: <span class="hljs-string">'有勇气的牛排博客'</span> });
});
</code></div></pre>
<h3><a id="23_html__55"></a>2.3 html 页面</h3>
<p><code>src/templates/index.ejs</code></p>
<pre><code class="lang-ejs"><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= title %></title>
</head>
<body>
<h1>欢迎来到 <%= title %>!</h1>
<p>这个页面使用 EJS 模板引擎加载.</p>
</body>
</html>
</code></pre>
<h2><a id="imagepnghttpsimgcouragesteakcomarticle19608046b0cc3a02b06da12eda3925eapng_74"></a><img src="https://static.couragesteak.com/article/19608046b0cc3a02b06da12eda3925ea.png" alt="image.png" /></h2>
留言