彻底学懂express框架

简介: 彻底学懂express框架

一、认识Web框架


1.前面我们已经学习了使用 http 内置模块来搭建Web服务器,为什么还要使用框架?

  • 原生http在进行很多处理时,会较为复杂;
  • 有URL判断、Method判断、参数处理、逻辑代码处理等,都需要我们自己来处理和封装;
  • 并且所有的内容都放在一起,会非常的混乱;

2.目前在Node中比较流行的Web服务器框架是express、koa;

  • 我们先来学习express,后面再学习koa,并且对他们进行对比;

3.express早于koa出现,并且在Node社区中迅速流行起来:

  • 我们可以基于express快速、方便的开发自己的Web服务器;
  • 并且可以通过一些实用工具和中间件来扩展自己功能;


二、Express框架


PS:Express整个框架的核心就是中间件


2.1 express安装


Express 的使用过程有两种方式


  1. 通过express提供的脚手架,直接创建一直应用骨架(推荐)
  2. 从零搭建自己的express应用结构

方式一:


  • 安装express-generator脚手架

npm install -g express-generator


  • 创建项目

express express-demo


  • 安装依赖

npm install


  • 启动项目

node bin\www


方式二: 从零搭建自己的express结构


  • 初始化

npm init -y


  • 在当前目录下安装express

npm install express


  • 创建项目基础

微信图片_20221009220756.png

创建第一个项目

微信图片_20221009220831.png

2.2 认识express中间件


Express是一个路由和中间件的Web框架,它本身的功能非常少: Express应用程序本质上是一系列中间件函数的调用

中间件是什么呢?


中间件的本质是传递给express的一个回调函数;

这个回调函数接受三个参数:

请求对象(request对象)

响应对象(response对象)

next函数(在express中定义的用于执行下一个中间件的函数)

中间件中可以执行哪些任务呢?


执行任何代码;

更改请求(request)和响应(response)对象;

结束请求-响应周期(返回数据);

调用栈中的下一个中间件。


2.3 应用中间件–自己编写


express主要提供了两种方式:app/router.use和app/router.methods。下面先学习use的用法


1. 普通中间件

微信图片_20221009221004.png

2. 路径和方法中间件微信图片_20221009221026.png


2.4 应用中间件—body解析(JSON和urlencoded)


  • express有内置一些帮助我们完成对request解析的中间件;
  • registry仓库中也有很多可以辅助我们开发的中间件;

方式一:编写解析request body 中间件(不推荐)

微信图片_20221009221125.png

方式二:用express内置函数

微信图片_20221009221157.png

2.5 应用中间件—body解析(form-data)

微信图片_20221009221230.png


2.6 应用中间件—body解析(form-data文件上传)

微信图片_20221009221300.png

2.7 应用中间件—传递参数params和query

image.png

image.png

2.8 Express的路由


如果我们将所有的代码逻辑都写在app中,那么app会变得越来越复杂:


  • 一方面完整的Web服务器包含非常多的处理逻辑;
  • 另一方面有些处理逻辑其实是一个整体,我们应该将它们放在一起。

我们可以使用 express.Router来创建一个路由处理程序:


  • 一个Router实例拥有完整的中间件和路由系统;
  • 因此,它也被称为 迷你应用程序(mini-app)

完整使用:


创建用户路由(user.js)文件

/**
 * eg:创建常见一个用户路由
 * 请求所有用户信息:get/users
 * 请求某个用户的信息:get/users/:id
 * 添加某个用户的信息:post/users body {username:password:}
 * 删除某个用户的信息:delete/users/:id
 * 更新某个用户信息:patch/users/:id
 */
const express = require('express')
const userRouter = express.Router();
userRouter.get('/',(req,res,next)=>{
  res.json(['elva','eva','egg'])
})
userRouter.get('/:id',(req,res,next)=>{
  res.json(`${req.params.id}用户信息`)
})
userRouter.post('/',(req,res,next)=>{
  res.json('create user success')
})
module.exports = userRouter

导入使用

const express = require('express')
const userRouter = require('./routers/user')
const app = express()
app.use('/users',userRouter)
app.listen(8000,()=>{
  console.log('路由服务器启动成功');
})

注意:express的精髓就是对于中间件的使用

相关文章
|
25天前
|
开发框架 JavaScript 安全
js开发:请解释什么是Express框架,以及它在项目中的作用。
Express是Node.js的Web开发框架,简化路由管理,支持HTTP请求处理。它采用中间件系统增强功能,如日志和错误处理,集成多种模板引擎(EJS、Jade、Pug)用于HTML渲染,并提供安全中间件提升应用安全性。其可扩展性允许选用合适插件扩展功能,加速开发进程。
|
3月前
|
人工智能 JavaScript 前端开发
【利用AI让知识体系化】入门Express框架(三)
【利用AI让知识体系化】入门Express框架
|
3月前
|
XML 人工智能 JavaScript
【利用AI让知识体系化】入门Express框架(二)
【利用AI让知识体系化】入门Express框架
|
3月前
|
存储 JavaScript 数据库
nodejs中express框架实现增删改查接口
nodejs中express框架实现增删改查接口
|
4月前
|
开发框架 JSON JavaScript
Node.js教程-express框架
Node.js教程-express框架
39 1
|
4月前
|
缓存 前端开发 JavaScript
Express 框架的基本操作
Express 框架的基本操作
|
7月前
|
JSON JavaScript 中间件
node.js中Express框架路由,中间件
node.js中Express框架路由,中间件
|
7月前
|
域名解析 监控 JavaScript
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
429 0
|
7天前
|
开发框架 JavaScript 前端开发
【Node系列】Express 框架
Express.js 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,提供一系列强大的特性来帮助你创建各种 web 和移动设备应用。
23 2
|
2月前
|
开发框架 JavaScript 前端开发
比较两个突出的node.js框架:koa和express
接上文讲述了 koa框架,这边文章比较一下这两个突出的node.js框架:koa和express