Express框架基础复习学习笔记,包含(Express简介,基本用法,Express路由,中间件,独立写接口)

本文是Express框架的基础复习学习笔记,涵盖了Express的简介、基本用法、路由、中间件以及如何使用Express编写接口。内容包括Express的安装、创建Web服务器、托管静态资源、路由概念和实现、中间件的定义和分类,以及CORS和JSONP接口的实现。适合新手入门和复习使用。
摘要由CSDN通过智能技术生成

文章目录


前言

本文包含 Express框架 基本内容,参考于黑马教学视频通过自己理解整理,所以这是一篇用于小白新手入门,或者复习使用的笔记, 从最基础带你认识Express基本内容, 到可以独立封装自己的接口
如有做的不好的地方,敬请谅解,欢迎指出,持续更新改正


一 初始 Express

1 Express简介

1.1 什么是Express

官方: Express是基于Node.js平台,快速,开放,极简Web开发框架

通俗理解: Express的作用和Node.js内置的http模块类似,专门用来创建Web服务器的

本质: 就是一个npm上的第三方包(基于http模块封装),提供了快速创建Web服务器的便捷方法

链接: Express中文官网


1.2 Express能做什么

前端最常见的两种服务器

  • Web网站服务器: 专门对外提供Web网页资源的服务器
  • API接口服务器: 专门为外提供API接口的服务器

使用Express,可以方便,快速创建Web网站的服务器或API接口服务器


2 Express的基本用法

2.1 安装

执行终端命令

npm i  express@4.17.1

2.2 创建基本的Web服务器

// 1 导入express
const express = require('express')

// 2 创建web服务器
const app = express()

// 3 调用app.listen(端口号, 回调函数) 启动服务器
app.listen(80, ()=>{
   
    console.log('express server running at http://127.0.0.1');
})

2.3 监听 GET 与 POST 请求

app.get() 和 app.post()

 //参数1:客户端请求的URL地址
 //参数2:请求对应的处理函数     req:请求对象    res:响应对象
 app.get('请求URL', function(req, res) {
   处理函数}
 //参数1:客户端请求的URL地址
 //参数2:请求对应的处理函数     req:请求对象    res:响应对象
 app.post('请求URL', function(req, res) {
   处理函数}

2.4 把内容响应给客户端

res.send() 方法

// 1 导入express
const express = require('express')

// 2 创建web服务器
const app = express()

// 4 监听客户端的GET和POST请求, 并向客户端响应内容
app.get('/user', function(req, res){
   
    // 调用 res.send() 方法, 向客户端响应一个对象
    res.send({
   name: 'zt', age: 20})
})

app.post('/user', function(req, res){
   
    // 调用 res.send() 方法, 向客户端响应一个文本
    res.send('请求成功')
})

// 3 调用app.listen(端口号, 回调函数) 启动服务器
app.listen(80, ()=>{
   
    console.log('express server running at http://127.0.0.1');
})

2.5 获取 URL 中携带的查询对象

req.query

在请求时, 将查询字符串写到url后面, req.query 就能获取到

app.get('/', function(req, res){
   
    // 通过req.query 可以获取到客户端发送过来的 查询参数, 默认情况下是空对象
    res.send(req.query)
})

2.6 获取 URL 中的动态参数

req.params对象

可以访问到 URL 中, 通过 : 匹配到的动态参数

app.get('/user/:id', function(req, res){
   
    // req.params 存放通过动态匹配过来的参数值, 默认是一个空对象
    res.send(req.params)
})

假如 url 是user/1, 响应值如下

     {
          "id": "1"
     }

注意

  • 冒号后名称不固定, 合理合法就行
  • 可以有多个动态参数

3 托管静态资源 (外界可以访问自己服务器资源)

3.1 托管一个目录 (express.static() 方法)

express.static() 方法, 非常方便地创建一个静态资源服务器

app.use(express.static('目录'))

注意: Express 在指定静态目录查找文件, 并对外提供资源访问路径, 因此, 存放静态文件的目录名不会出现在 URL 中

const express = require('express')

const app = express()

// 调用express.static(目录) 方法, 提供对外静态资源
app.use(express.static('./code'))

app.listen(80, ()=>{
   
    console.log('express server running at http://127.0.0.1');
})

3.2 托管多个静态资源目录

只需多次调用 express.static() 函数

app.use(express.static('目录1'))

app.use(express.static('目录2'))

注意: 访问静态资源文件时, 会根据目录添加顺序查找


3.3 挂载路径前缀

可以通过如下方法, 为静态资源路径添加一个路径

qpp.use('前缀路径', express.static('目录'))

这样访问静态资源目录前必须加入 前缀路径


4 nodemon 工具

安装后, 当项目代码被修改, 就能够监听项目文件的变动, 修改后, 自动重启项目

npm i -g nodemon

以后不要node 启动项目, 直接用nodemon 启动

nodemon app.js

二 Express 路由

1 路由的概念

1.1 什么是路由

广义上说, 路由就是 映射关系


1.2 Express 中的路由

Express中, 路由是 客户端的请求服务器处理函数 之间的映射关系

由三部分组成:

  • 请求类型
  • 请求的 URL 地址
  • 处理函数
 app.类型(URL地址, 处理函数)

1.3 Express 中路由的例子

 app.get('/user:id', function(req, res){
   
     
     res.send(req.params)
 })
 
 app.post('/user', function(req, res){
   
  
     res.send('请求成功')
 })

1.4 路由的匹配过程

一个请求到达服务器后, 需要先经过路由的匹配, 只有成功后, 才会调用对应的处理函数

匹配时, 会按照路由顺序匹配, 如果请求类型请求URL同时匹配成功, 则会交给处理函数处理

在这里插入图片描述

注意:

  • 按照定义的先后顺序进行匹配
  • 请求类型请求URL同时匹配成功, 才会调用对应的处理函数

2 路由的使用

2.1 最简单用法

最简单的用法就是最简单的 app.get() 和 app.post() 方法 把路由挂载在app上

 app.get('/', function(req, res){
   
     
     res.send('Hello World')
 })
 
 app.post('/', function(req, res){
   
  
     res.send('Post Requset')
 })

实际上用的不多, 因为代码体积太大


2.2 模块化路由

为了方便对路由进行模块化的管理, Express不建议将路由直接挂载到app上, 而是将路由抽离为单独的模块

步骤如下

  1. 创建路由模块(自定义模块)对应的 .js 文件
  2. 调用 express.Router() 函数创建路由对象
  3. 向路由对象上挂载具体路由
  4. 使用 module.exports 向外共享路由对象
  5. 使用 app.use() 函数注册路由模块

2.3 创建路由模块

// 1 导入 express
const express = require('express')

// 2 创建路由对象
const router = express.Router()

// 3 挂载具体的路由
router.get('/user/list', (req,res) =>{
   
    res.send(
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neworend

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值