前言
EJS(Embedded JavaScript)是一个简单的 JavaScript 模板引擎,它可以将数据和 HTML 进行混编,生成最终的 HTML 输出。在 Node.js 应用中,使用 EJS 可以简化渲染 HTML 页面的流程,提升开发效率。本文将介绍如何在 Node.js 中使用 EJS 模板引擎,帮助初学者快速上手使用。
安装 EJS
在使用 EJS 前,需要先安装 EJS 模块。在命令行中执行以下命令即可:
npm install ejs --save
创建 EJS 模板文件
在使用 EJS 模板引擎前,需要先创建 EJS 模板文件。EJS 的模板文件采用 .ejs 后缀名,可以在模板中使用 JavaScript 语法进行编写。下面是一个简单的 EJS 模板示例,用于输出用户信息:
-- -------------------- ---- ------- ------ ------ ----------- ------- ------------ ------- ------ ----------- --- --------- ------- --------- --- ---------- ------ ------------ --- ------------- ------ ------- -------
在模板中,可以使用 <%= %> 语法输出其中的表达式的值。在上述示例中,<%= user.name %> 将输出用户的名称。
在 Node.js 中使用 EJS
在 Node.js 应用中使用 EJS 模板引擎,需要先加载 EJS 模块,然后使用 EJS 的 render() 函数渲染模板。下面是一个简单的 Node.js 示例,用于渲染用户信息页面:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- -- - -------------- ----- --- - --------------- ----------------------- ---- -- - -------------------------------- ------- ----- ----- -- - -- ----- - -------------- - ---- ----------------- ------ -------- - ---- - ----- ---- - - ----- ----- ----- ------ ----------------------- --------- ---------- -- ----- ---- - ---------------- - ---- --- ------------------ - --------------- ----------- --- -------------- - --- --------------- -- -- - ------------------- ------- -- ---- ------- ---
在上述示例中,使用 fs 模块读取 ./userprofile.ejs 文件,并使用 ejs.render() 函数渲染模板。ejs.render() 函数接收两个参数,第一个参数是模板文件的字符串内容,第二个参数是一个对象,用于传递模板需要的数据。在示例中,传递了一个 user 对象用于渲染模板。最后将渲染后的 HTML 响应给客户端。
EJS 模板的控制流
EJS 模板还支持常见的控制流语句,如 if、for、while 等。下面是一个包含控制流的 EJS 模板示例,用于输出用户列表:
-- -------------------- ---- ------- ------ ------ ----------- ------------ ------- ------ -------- --------- ---- -- ---------------------------- - -- ------- --------- ------- -- --- -- ----- ------- -------
在上述示例中,使用 <% %> 语法包含 JavaScript 代码块。在代码块中,可以使用常见的控制流语句进行编写。在示例中,使用 forEach() 方法遍历用户数组,并输出每个用户的名称。
总结
本文介绍了如何在 Node.js 应用中使用 EJS 模板引擎。包括安装 EJS、创建 EJS 模板文件、在 Node.js 中使用 EJS 进行模板渲染,以及使用 EJS 控制流语句进行模板编写。通过本文的介绍,读者可以快速上手使用 EJS 模板引擎,提升 Node.js 应用的开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6457bd3b968c7c53b0a58d34