Express

本文介绍了Express的基本使用,包括创建Web服务器、监听GET/POST请求以及express.static()用于托管静态资源。还详细讲解了路由的概念、模块化路由和路由的使用。此外,文章涵盖了中间件的原理,如应用级、路由级和错误级中间件,以及如何使用它们。最后提到了CORS跨域资源共享和JSONP接口的实现。
摘要由CSDN通过智能技术生成

目录

初识Express

        简介

        基本使用

         具体语法:        

                nodemon:

Express路由

        路由的概念:

        Express中的路由的例子:

        路由的使用:

        模块化路由:

Express中间件

使用Express写接口


使用express.static()快速托管静态资源

使用express路由精简项目结构

使用常见的express中间件

使用express创建API接口

在express中启用跨域或资源共享

初识Express

        简介

        express:专门用来创建Web服务器的

                        npm的一个得三方的包。

        express更加方便,功能更加强大。

        常见的两种服务器:Web网站服务器:提供网页资源的服务器

                                         API接口服务器:提供API接口的服务器

        基本使用

        创建基本服务器

//1.导入express
const express=require('express')
//2.创建web服务器
const app=express()
//3.启动web服务器
app.listen(80,()=>{
    console.log('express server running at http://127.0.0.1')
})

        监听GET请求:通过app.get()方法

        监听POST请求:通过app.post()方法

        具体语法:        

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

        req.query()可以获取到客户端发送过来的查询参数,默认是一个空对象

        req.params()可以访问到url中,通过:匹配到的动态参数:

        express.static()方便建立静态资源服务器,通过以下代码可以将public目录下的图片,js,css文件对外开放:

app.use(express.static('public'))

        nodemon:

                监听项目文件的变动,当代码被修改后,会自动帮我们重启项目。

                安装命令:npm i -g nodemon

                使用:将node命令替换为nodemon,可以更加方便。

Express路由

        路由的概念:

        路由:映射关系。客户端的请求与服务器处理函数之间的关系

        3部分组成:请求类型,请求的url地址,处理函数

        Express中的路由的例子:

                匹配get请求,且请求url为/

                

         路由匹配的注意点:

                按照定义的先后顺序进行

                请求类型和请求的url同时匹配才会调用对应的处理函数

        路由的使用:

                最简单的用法:(把路由挂载在app上)

        

         模块化路由:

                将路由抽离为单独模块的步骤:

                1.常见路由模块对应的js文件

                2.调用express.Router()函数创建对象

                3.向路由对象上挂载具体的路由

                4.使用module.exports向外共享路由对象

                5.使用app.use()函数注册路由模块

 

 注册路由模块:

 app.use()函数的作用,就是来注册全局中间件的。

                        

Express中间件

        概念:特指业务流程的中间处理环节。

           调用流程:对请求进行预处理环节

                    中间件的格式:本质是一个function处理函数。形参中包含next函数。

                     next函数:中间件连续调用的关键,它表示吧流转关系交给下一个中间件或路由。

          局部生效的中间件:

         

        定义多个局部中间件:

app.get('/',nw1,nw2,(req,res) =>{res.send('Home page')})

           中间件的注意事项:

                1.一定在路由之前注册中间件。

                2.客户端法过来的请求可以连续调用多个中间件记性处理

                3.执行完中间件的业务代码之后,不要忘记调用next()函数

                4.为了防止代码逻辑的混乱,调用了next()函数后,不要再写额外的代码

                5.连续调用多个中间件时,多个中间件之间,共享req和res对象

       中间件的分类:

                1.应用级别的中间件:

                    通过app.use()或app.get()或app.post(),绑定在app实例上的中间件,叫做应用级别的中间件。

                2.路由级别中间价:

                    绑定express.Router()实例上的中间件。绑定到rrouter实例上。

                3.错误级别的中间件:

                     专门用来捕获整个项目中发生的异常错误,从而防止项目崩溃的问题。 

                     格式:

                                                  

                中间件的作用:统一为req和res对象添加自定义的属性或方法,供下游中间件或路由进行使用。

                自定义中间件:1.定义中间件;2.监听req的data事件;3.监听req的end事件;4.使用qquerystring模块解析请求数据;5.将解析出的数据对象挂载为req.boddy;6.将自定义中间件封装为模块。

使用Express写接口

        创建基本的服务器:

        创建API路由模块:

 

         创建GET接口: 

 

       编写POST接口:  

 ​​​​​​​

        CORS跨域资源共享:

                   解决跨域问题:

    

cors解决方案:一定要在路由之前,配置cors这个中间件,从而解决接口跨域问题

                        

 

cors响应头部-Access-Contorl-Allow-Origin

                     -Access-Contorl-Allow-Headers

                     -Access-Contorl-Allow-Methods

        JSONP接口:

                注意:项目中已经配置了cors跨域共享,为防止冲突,在配置cors中间件之前声明JSONP的接口。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值