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

第八篇:node模版引擎Handlebars及他的高级用法(动态参数)

 🎬 江城开朗的豌豆:个人主页

 🔥 个人专栏 :《 VUE 》 《 javaScript 》

 📝 个人网站 :《 江城开朗的豌豆🫛 》 

⛺️ 生活的理想,就是为了理想的生活 !

在这里插入图片描述

目录

📘 引言:

📘 介绍 Handlebars

📟 第一步:安装对应的模版引擎

📟 第二步:创建views文件夹,并且新建一个index.hbs文件和about.hbs文件

📟 第三步:在serve.js中配置和使用模版。 

 配置

使用 

📘 高级用法(动态参数)

📟 第一步:创建views文件夹,并且新建一个index.hbs文件

📟 第二步:在serve.js中配置和使用模版。

配置

使用 

📟 效果展示 

 📘 往期篇章推荐

⭐  写在最后


📘 引言:

当今互联网时代,Node.js 成为了最受欢迎的服务器端开发平台之一。作为一名小白,学习 Node.js 可能会让你感到有些困惑和陌生。但是,不用担心!本文将带领你进入 Node.js 的世界,帮助你理解它的基本概念和学习路径。

Node.js 是构建高性能、可扩展网络应用程序的运行时环境。它基于 Chrome V8 JavaScript 引擎,并采用事件驱动、非阻塞的 I/O 模型,使得它能够处理大量并发连接而不阻塞其他操作。这使得 Node.js 成为构建实时应用程序、聊天应用、API 服务等的理想选择。

本文旨在为初学者提供一个简单的入门指南,介绍 Node.js 的核心概念、安装和配置环境的步骤,以及使用常见的模块和工具。我们还将探索如何编写简单的服务器端代码、处理 HTTP 请求和响应、读写文件、操作数据库等常见任务。

无论你是想成为一名全职的 Node.js 开发者,还是只是对学习这门技术感兴趣,本文都将为你提供一个良好的起点。我们将尽量以简洁明了的方式解释概念,并提供实际的示例代码帮助你理解。

让我们一起开始这段令人兴奋的 Node.js 学习之旅吧!

📘 介绍 Handlebars

模版引擎可以简单的理解为升级版的 html 文档,express可以用模版引擎来渲染前端页面,模版引擎有很多种,包括jade,ejs,nunjunks,Handlebars等等,express对每一种都提供了很好的支持,只需要几行代码就可以使用。我们今天来学习下Handlebars(简写hbs)

📟 第一步:安装对应的模版引擎

yarn add hbs

📟 第二步:创建views文件夹,并且新建一个index.hbs文件和about.hbs文件

index.hbs:

<div><h1>express</h1><p>我是江城开朗的豌豆</p><a href="/about" target="_blank">关于我们</a>
</div>

about.hbs: 

<div><h1>关于我们</h1><p>学习node.js第二天</p>
</div>

📟 第三步:在serve.js中配置和使用模版。 

 配置
// 配置
// 使用express搭建服务
const express = require('express');
const app = express();
// 指定模版存放目录
app.set('views', 'view');// 指定模版引擎为Handlebars
app.set('view engine', 'hbs');
使用 
// 使用
app.get('/index', (req, res)=>{// 渲染index.hbs文件res.render('index');}
)app.get('/about', (req,res)=>{// 渲染about.hbs文件res.render('about');
})

📘 高级用法(动态参数

📟 第一步:创建views文件夹,并且新建一个index.hbs文件

index.hbs

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div><h1>express</h1>姓名:{{ name }}<p>我是江城开朗的豌豆</p><img style="width: 200px;height:200px" src="{{ img }}" alt="头像"><p>{{ message }}</p><a href="/about" target="_salf">关于我们</a></div>
</body>
</html>

📟 第二步:在serve.js中配置和使用模版。

配置
// 使用express搭建服务
const express = require('express');
const app = express();
// 指定模版存放目录
app.set('views', 'view');// 指定模版引擎为Handlebars
app.set('view engine', 'hbs');
使用 
const img = 'https://7072-prod-4gapv4gl33a8a0ff-1305990777.tcb.qcloud.la/%E9%87%8D%E8%A6%81%E5%9B%BE%E7%89%87%E5%AD%98%E5%82%A8/%E8%B1%8C%E8%B1%86%E5%9C%88%E5%AD%90%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%9B%BE%E7%89%87/2891704418680_.pic.jpg?sign=2f48aaf410e2c01ab12eb301f4885c82&t=1704780920'
app.get('/index', (req, res)=>{// 渲染index.hbs文件res.render('index',{name: '张三',message: 'Hello, World!',img,});}  
)

📟 效果展示 

 📘 往期篇章推荐

 📟 第一篇:node的背景及版本的检查

 📟 第二篇:新建node项目并运行

 📟 第三篇:搭建项目的两种代码格式

 📟 第四篇:怎么写express的路由(接口+请求) 

 📟 第五篇:express路由路径方式(字符串,字符串模式,和正则)

 📟 第六篇:express路由拆分(模块化) 

 📟 第七篇:node中间件详解 

⭐  写在最后


请大家不吝赐教,在下方评论或者私信我,十分感谢🙏🙏🙏.

✅ 认为我某个部分的设计过于繁琐,有更加简单或者更高逼格的封装方式

✅ 认为我部分代码过于老旧,可以提供新的API或最新语法

✅ 对于文章中部分内容不理解

✅ 解答我文章中一些疑问

✅ 认为某些交互,功能需要优化,发现BUG

✅ 想要添加新功能,对于整体的设计,外观有更好的建议

最后感谢各位的耐心观看,既然都到这了,点个 👍赞再走吧!
 

相关文章:

  • 基于muduo网络库开发服务器程序和CMake构建项目 笔记
  • 自动保存知乎上点赞的内容至本地
  • 计算机组成原理学习| Day1
  • 【SpringCloud】使用OpenFeign进行微服务化改造
  • VUE PC端可拖动悬浮按钮
  • 《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树
  • 基于布谷鸟搜索的多目标优化matlab仿真
  • 微信小程序 安卓/IOS兼容问题
  • python爬虫3
  • 软件压力测试:探究其目的与重要性
  • 洛谷p1644跳马问题
  • 页面切换导致echarts不加载的问题
  • 【c语言】简单贪吃蛇的实现
  • Uboot中ARMV7和ARMV8 MMU配置
  • vscode git stash apply stash@{1}不生效
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Hibernate【inverse和cascade属性】知识要点
  • Java IO学习笔记一
  • js写一个简单的选项卡
  • ReactNative开发常用的三方模块
  • Unix命令
  • Wamp集成环境 添加PHP的新版本
  • 搭建gitbook 和 访问权限认证
  • 动态规划入门(以爬楼梯为例)
  • 记一次删除Git记录中的大文件的过程
  • 微服务入门【系列视频课程】
  • scrapy中间件源码分析及常用中间件大全
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • (04)odoo视图操作
  • (145)光线追踪距离场柔和阴影
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (转)h264中avc和flv数据的解析
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • ***监测系统的构建(chkrootkit )
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .net 设置默认首页
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @hook扩展分析
  • @ModelAttribute使用详解
  • @Transactional 详解
  • [ C++ ] STL---string类的使用指南
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [100天算法】-x 的平方根(day 61)
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [BZOJ] 2044: 三维导弹拦截
  • [C++]拼图游戏
  • [CISCN2019 华东北赛区]Web2
  • [HAOI2016]食物链
  • [Hibernate] - Fetching strategies