Node.js使用EJS模板引擎时后缀换成.html的攻略
EJS(Embedded JavaScript)是一种流行的JavaScript模板引擎,它允许在服务器端生成动态的HTML页面。默认情况下,EJS模板文件的后缀是.ejs
,但是有时候我们可能需要将后缀更改为.html
,以便与其他文件类型保持一致。下面是详细的攻略,教你如何在Node.js中使用EJS模板引擎时将后缀更改为.html
。
步骤一:安装EJS模板引擎
首先,确保你已经在Node.js项目中安装了EJS模板引擎。你可以使用以下命令通过npm进行安装:
npm install ejs
步骤二:配置Express应用
接下来,你需要配置Express应用来使用EJS模板引擎,并将后缀更改为.html
。在你的Node.js项目中,找到主文件(通常是app.js
或index.js
),并按照以下步骤进行配置:
- 导入所需的模块:
const express = require('express');
const ejs = require('ejs');
- 创建Express应用:
const app = express();
- 配置EJS模板引擎:
app.engine('html', ejs.renderFile);
app.set('view engine', 'html');
- 设置模板文件的存放路径(可选):
app.set('views', path.join(__dirname, 'views'));
步骤三:创建EJS模板文件
现在,你可以创建EJS模板文件,并将其后缀更改为.html
。在模板文件中,你可以使用EJS的语法来生成动态的HTML内容。以下是一个简单的示例:
<!-- views/index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Node.js EJS Template</title>
</head>
<body>
<h1>Welcome to <%= title %></h1>
</body>
</html>
步骤四:渲染EJS模板
最后,你需要在Express应用中渲染EJS模板文件。在路由处理程序中,使用res.render()
方法来渲染模板文件,并传递所需的数据。以下是一个示例:
app.get('/', (req, res) => {
const data = {
title: 'My Node.js App'
};
res.render('index', data);
});
在上面的示例中,res.render('index', data)
将会渲染views/index.html
模板文件,并将data
对象中的数据传递给模板。
这样,你就成功地将Node.js中使用EJS模板引擎时的后缀更改为.html
了。
示例说明
示例一:动态生成用户列表
假设你有一个用户列表页面,你可以使用EJS模板引擎来动态生成用户列表。以下是一个示例:
<!-- views/userList.html -->
<!DOCTYPE html>
<html>
<head>
<title>User List</title>
</head>
<body>
<h1>User List</h1>
<ul>
<% users.forEach(function(user) { %>
<li><%= user.name %></li>
<% }); %>
</ul>
</body>
</html>
app.get('/users', (req, res) => {
const users = [
{ name: 'John' },
{ name: 'Jane' },
{ name: 'Bob' }
];
res.render('userList', { users });
});
在上面的示例中,res.render('userList', { users })
将会渲染views/userList.html
模板文件,并将users
数组传递给模板,以便动态生成用户列表。
示例二:条件渲染
EJS模板引擎还支持条件渲染。以下是一个示例:
<!-- views/greeting.html -->
<!DOCTYPE html>
<html>
<head>
<title>Greeting</title>
</head>
<body>
<% if (time < 12) { %>
<h1>Good Morning!</h1>
<% } else { %>
<h1>Good Afternoon!</h1>
<% } %>
</body>
</html>
app.get('/greeting', (req, res) => {
const time = new Date().getHours();
res.render('greeting', { time });
});
在上面的示例中,res.render('greeting', { time })
将会渲染views/greeting.html
模板文件,并将当前时间的小时数传递给模板,以便根据时间条件动态渲染问候语。
这些示例演示了如何在Node.js中使用EJS模板引擎时将后缀更改为.html
,以及如何使用EJS的语法来生成动态的HTML内容。你可以根据自己的需求进行扩展和修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js 使用ejs模板引擎时后缀换成.html - Python技术站