首页 > 编程语言 >2023 最新 Node.js 系列教程之 Express

2023 最新 Node.js 系列教程之 Express

时间:2024-12-12 11:12:45浏览次数:8  
标签:Node req 请求 Express 中间件 js express 路由

2023 最新 Node.js 系列教程之 Express

https://www.bilibili.com/video/BV1yN4y1S7xU 1

课件: https://www.yuque.com/u295415/xbahyh/qkxc1d7qm2qbezkh?singleDoc# 《express搭建后端服务》 https://www.yuque.com/u295415/xbahyh/wq9ktxzsnt9ov8e6?singleDoc# 《Express中间件》 https://www.yuque.com/u295415/xbahyh/cxqie939709agken?singleDoc# 《Express 路由》

Express概述

ex p les

1.课程介绍和准备
课程概述和学习目标
开发环境设置和准备工作
2.Express基础知识
什么是Express及其特点
Express中间件的概念和使用
路由和请求处理
处理静态文件
错误处理和错误中间件
3.构建RESTful API
API设计和规范
使用Express构建RESTful路由
处理GET、POST、PUT和DELETE请求
参数验证和数据校验
数据库集成和数据操作
4.进阶Express开发
I
使用模板引擎渲染视图
表单处理和文件上传
用户认证和授权
会话管理和Cookie
日志记录和调试技巧
5.测试和部署
单元测试和集成测试
使用Supertest进行API测试
部署Express应用到服务器
使用PM2进行进程管理
性能优化和缓存策略
コ→

·什么是Express?
·官方给出的概念:Express是基于Node.js平台,快速,开放,极简的Web开发框架
.通俗的理解:Express的作用和Node.js内置的http模块类似,是专门用来创建Web服务器的

"express": "^4.18.2"

初识Express
Express路由

Express中的路由
Express中,路由指的是客户端的请求与服务器处理函数之间的映射关系。
express中的路由分3部分组成,分别是请求的类型、请求的URL地址、处理函数,格式如下:

app. METHOD(PATH, HANDLER)

nodemen autoreload

直接返回json 可以diyREstapi

模块化路由

express.router++s

app.use('/user',router) 中间件 +user-prefix

Express 请求参数详解

1.req.query:包含了通过查询字符串传递的参数。查询字符串是 URL 中?后面的参数。你可以通过 req.query 来获取这些参数。例如,对于URL http://example.com/foo?name=John&age=30,req.query.name将返回
"John",req.query.age将返回"30"。查询字符串参数通常用于GET请求2.req.params:包含了通过路由定义的动态路由参数。动态路由参数是通过在路由路径中使用冒号(:)定义的。例如,对于路由路径/user/:id,当发送请求到/user/123时,req.params.id将返回"123"。动态路由参数通常用于根据不同的资源生成不同的响应。
3.req.body:包含了通过请求主体传递的参数。通常用于POST,PUT和DELETE请求中发送数据。为了能够使用req.body,你需要使用一个中间件(例如 body-parser)来解析请求主体。通过 req.body 可以获取传递的数据。
例如,对于一个POST请求,req.body.name将返回提交的名字。
4.req.headers:包含了请求中的头部信息。你可以通过访问req.headers对象的属性,来获取特定的头部信息。例如,req.headers['content-type']将返回请求中的Content-Type头部信息。

query

params

body +插件

Express中间件

洋葱模型...

中间件的作用
多个中间件之间,共享同一份req和res,基于这样的特性,我们可以在上游的中间件中,统一为req或res对象添加自定义的属性或方法,供下游的中间件或路由进行使用。

app.use 全局

局部的 app.get('/',[middle,middle2],(req,res)=>{})

middel(req,res,next){

​	next()

}

为了方便大家理解和记忆中间件的使用,Express官方把常见的中间件用法,分成了5大类,分别是:
①应用级别的中间件②路由级别的中间件③错误级别的中间件
④Express 内置的中间件
⑤ 第三方的中间件

error middle
app.get((err,res,req,next)=>{err.message})

Express内置的中间件
自Express 4.16.0版本开始,Express内置了3个常用的中间件,极大的提高了Express项目的开发效率和体验:
①express.static 快速托管静态资源的内置中间件,例如:HTML文件、图片、CSS 样式等(无兼容性)
②express.json 解析 JSON 格式的请求体数据(有兼容性,仅在4.16.0+版本中可用)
③express.urlencoded 解析 URL-encoded 格式的请求体数据(有兼容性,仅在4.16.0+版本中可用)


内置中间件s

路由加载之前使用内置中间件

express.json 中间件

8910
//通过express,urlencoded()这个中间件,来解析 表单中的url-encoded格式的数据app.use(express().urlencoded(fextended:false)))
11

Express 访问数据库

免费数据库平台:https://sqlpub.com/

500m

npm install express body-parser cors--save

Node接口实战API

Sequelize orm

stu是数据库的表名DB.define('表名',{字段...}) 对应模型 实体 可以自动生成

Express-Validator表达式校验

express-validator express-validation是一个中间件,它验证请求的body,params,query,headers 和cookies,并且如果任何配置的验证规则失败,返回一个错误的响应官方文档:https://express-validator.github.io/docs/

参数校验

div fs读取 send

pug 直接

ejs

html简化 可以变量 模板

PUG Pug(以前称为Jade)是一种模板引擎1它可以生成HTML代码,它使用缩进和标记语言来创建模板。
以下是Pug模板引擎的基本用法:

ws http

wss https

ws socket.io...

不管客户端还是服务端WebSocket的核心事件分为两类,一类是监听事件、一类是触发事件监听事件
监听事件主要就是以下四类,在服务端跟客户端都通用onOpen:监听连接建立的消息
onMessage:监听双端发送的消息
onClose:监听连接断开的消息onError:监听异常发生的消息
触发事件
触发事件主要就是发送消息跟断开连接需要触发,也是客户端跟服务端都通用send:主动发送消息的事件
close:主动关闭连接的事件

模板引擎的使用
EJS 使用案例讲解
PUG模板引擎
Express Socket通信

Express文件上传

post 请求res.files文件 上传来 然后保存格式 移动到指定目录

if(!req.files II Object.keys(req.files).length==0){
res.status(400).send({
message:'上传失败!',code:500
})
return;fileObject= req.files.file filePath ='./upload/'+ fileobj.name;
//得到具体路径_dirnamek 当前目录
const fileFolder= path.join(_dirname,'./upload/')
//检查 upload 文件夹是否存在,如果不存在则创建if(!fs.existsSync(fileFolder)){
fs.mkdirSync(fileFolder);fileObj.mv(filePath,(err)=>{
if(err){
return res.status(500).send({
code:1,msg:'System error'
});

"expressEfileupload": "^1.4.1", 加入中间件

mutl

文件的下载

res.download(file.path)

流形式 文件路径形式

Sokect通讯服务项目环境搭建
WebScoket 项目逐行分析
Express 项目环境搭建
分页查询和条件查询详解

"multer": "^1.3.0",

请求page+ orm limit offer+1

orm 日子记录

标签:Node,req,请求,Express,中间件,js,express,路由
From: https://www.cnblogs.com/KooTeam/p/18602002

相关文章

  • 【Nestjs实战】Nodejs必学框架 | Nest企业级项目构建与开发实战
    【Nestjs实战】Nodejs必学框架|Nest企业级项目构建与开发实战https://www.bilibili.com/video/BV1bQ4y1A77L 1nestjs框架介绍与本视频学习指导创建nestjs工程与概念浅析f控制器(controller)集成swaggerapi文档自定义logger中间件(middleware)异常过滤器(exceptionfilter)参......
  • Node+Koa2从零搭建通用API服务
    【杰哥课堂】-项目实战-Node+Koa2从零搭建通用API服务https://www.bilibili.com/video/BV13A411w79h 1source:https://github.com/jj112358/node-api01-项目初始化02-项目的基础搭建03-项目的基本优化(自动重启_配置文件)yarnadddotenv1将http服务和app业务拆分srcappc......
  • nestjs从入门到弃坑
    nestjs从入门到弃坑https://www.bilibili.com/video/BV1am4y1d71A 11.引言2.初始化项目3.控制器和路由(上)4.控制器和路由(下)5.提供者就是依赖注入防止hack数据传输对象(DTO)(DataTransferObject),是一种设计模式之间传输数据的软件应用系统。数据传输目标往往是数据访问对......
  • Node.js框架之NestJS从入门到实战必学从入门到实战必学教程
    Node.js框架之NestJS从入门到实战必学从入门到实战必学教程https://www.bilibili.com/video/BV1btU7YtE5M 4 820241-1课程介绍imoocbilibil一手:666java.com如今的前端变得复杂第一阶段HTMLCSSJS第二阶段JQueryBootstrap第三阶段AugularVueReact第四阶段大型SP......
  • node.js毕设宠物在线管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于宠物管理系统的研究,现有研究主要以宠物领养管理、宠物医院管理等为主,专门针对宠物在线综合管理(涵盖店长、用户、员工、宠物信息、用户宠物、宠物咨......
  • Next.js 14 实战:使用 App Router 构建高性能 React 应用
    "你们的网站加载速度太慢了,而且SEO效果很差。"上个月,我们接到了一个来自海外客户的紧急需求。他们的电商网站是用传统的ReactSPA构建的,在性能和搜索引擎优化方面都遇到了瓶颈。作为技术负责人,我立刻想到了Next.js14的AppRouter。......
  • HTML5+CSS3+JS制作电影主题网页(内附源码,含5个页面)
    一、页面结构1.顶部导航栏固定在页面顶部的导航栏,包含网站Logo、搜索框、首页、影视库、剧评、个人中心等导航链接,以及登录/注册按钮2.主横幅轮播区大型轮播横幅,展示热门电影和剧集的海报,配合简短介绍和'立即观看'按钮3.快捷分类导航横向滚动的分类菜单,包含电影、电视......
  • 使用js按贝格尔编排算法生成单循环对阵表
    functionbergerAlgorithm(teams){if(!Array.isArray(teams)){thrownewError("Teamsmustbeanarray.");}constnumTeams=teams.length;if(numTeams<2){return[];//Nomatchespossiblewithlessthan2teams}/......
  • 书店仓库系统|Java|SSM|JSP|
                 【技术栈】1⃣️:架构:B/S、MVC2⃣️:系统环境:Windowsh/Mac3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7+4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html5⃣️数据库可视化工具:navicat6⃣️服务器:SpringBoot自带apachetomca......
  • 校园点餐系统|Java|SSM|JSP| 前后端分离
                  【技术栈】1⃣️:架构:B/S、MVC2⃣️:系统环境:Windowsh/Mac3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7+4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html5⃣️数据库可视化工具:navicat6⃣️服务器:SpringBoot自带apachetom......