当前位置: 首页 > news >正文

nodejs模板引擎(一)

在 Node.js 中使用模板引擎可以让您更轻松地生成动态 HTML 页面,通过将静态模板与动态数据结合,您可以创建可维护且易于扩展的 Web 应用程序。以下是一个使用 Express 框架和 EJS 模板引擎的基本示例:

  1. 安装必要的依赖
    首先,确保您已安装 Node.js 和 npm。然后,在您的项目目录中运行以下命令来安装 Express 和 EJS:

    npm install express ejs
    
  2. 创建 Express 应用
    接下来,创建一个基本的 Express 应用,并设置 EJS 作为模板引擎:

    const express = require('express');
    const app = express();
    const path = require('path');// 设置 EJS 引擎和视图路径
    app.set('view engine', 'ejs');
    app.set('views', path.join(__dirname, 'views'));// 设置静态资源目录
    app.use(express.static(path.join(__dirname, 'public')));// 路由
    app.get('/', (req, res) => {const data = { title: 'My Title', message: 'Hello from EJS!' };res.render('index', data);
    });// 启动服务器
    const port = process.env.PORT || 3000;
    app.listen(port, () => {console.log(`Server running on port ${port}`);
    });
    
  3. 创建模板文件
    views 文件夹中创建一个名为 index.ejs 的文件。EJS 使用 <% %> 作为脚本标签来嵌入 JavaScript 代码:

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title><%= title %></title>
    </head>
    <body><h1>Welcome to my site</h1><p><%= message %></p>
    </body>
    </html>
    
  4. 运行应用
    运行您的应用,然后访问 http://localhost:3000/,您应该看到动态生成的页面。
    在这里插入图片描述

这只是使用 EJS 的一个简单示例。不同的模板引擎可能有不同的语法和特性,但它们大多数都遵循类似的工作流程。您可以根据具体需求选择合适的模板引擎,如 Pug(旧称 Jade)、Handlebars、Mustache、Dust.js 等。

如果您需要更复杂的逻辑或者特定的功能,您应该查阅所选模板引擎的官方文档来了解如何使用它们的高级功能。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • react + redux 状态管理操作
  • Kafka基础入门篇(深度好文)
  • 柳永,市井生活的吟游者
  • HDFS体系架构文件写入/下载流程
  • EnableFeignClients详解
  • 函数的形状怎么定义?
  • 用Qwt进行图表和数据可视化开发
  • GD32F303之CAN通信
  • EasyExcel批量读取Excel文件数据导入到MySQL表中
  • 二分查找中while的判断条件
  • 11.FreeRTOS_事件组
  • 使用Python和MediaPipe实现手势虚拟鼠标控制
  • 自动驾驶论文总结
  • SQL 索引
  • PyTorch DataLoader 学习
  • 2019年如何成为全栈工程师?
  • avalon2.2的VM生成过程
  • CentOS从零开始部署Nodejs项目
  • IndexedDB
  • java第三方包学习之lombok
  • Mocha测试初探
  • MySQL QA
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • overflow: hidden IE7无效
  • SAP云平台里Global Account和Sub Account的关系
  • Service Worker
  • vue的全局变量和全局拦截请求器
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 基于webpack 的 vue 多页架构
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 树莓派 - 使用须知
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​如何在iOS手机上查看应用日志
  • ​什么是bug?bug的源头在哪里?
  • #14vue3生成表单并跳转到外部地址的方式
  • #nginx配置案例
  • #数据结构 笔记一
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • $.proxy和$.extend
  • (Java)【深基9.例1】选举学生会
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (杂交版)植物大战僵尸
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...