NodeJS第四章 express框架、路由传参、中间件(插件)、路由器 详解(含详细代码!!!)

目录

一、express框架

二、路由传参

三、路由器(用来管理路由)

四.中间件(插件) 

每日一句

 


一、express框架

        基于Node.js平台,快速、开放、极简的WEB开发框架

        网址:www.expressjs.com.cn

         安装:npm  install  express

  1. 创建WEB服务器
    1. const express=require('express')  //引入express模块
      const app=express()  //创建WEB服务器
      app.listen(3000)  //设置端口
  2. 路由
    1.  路由用于监听特定的请求;
      1. 包含请求的网址
      2. 请求的方法
      3. 回调函数
    2. 请求的对象 req
      1. req.url          获取请求的网址
      2.  req.method          获取请求的方式
      3. req.query           获取get传递的参数
    3. 响应的对象res
      1. res.send()           设置响应的内容并发送
      2. res.redirect()           设置响应的重定向
      3. res.sendFile()         设置响应的文件并发送(文件必须使用绝对路径  __dirname)
  3. 路由传递参数
路由传递参数
传参方式格式路由中获取
get传递http://127.0.0.1:3000/mysearch?kw=小米&a=1req.query
{kw:'小米', a:1}
post传递参数在网址中不可见
http://127.0.0.1:3000/mylogin2
需要使用插件
req.body
{user:'tao', pwd:'123456'}
使用插件将post传参转为对象
app.use( express.urlencoded({  extended:true  //是否使用扩展的第三方模块}) )

二、路由传参

  1. 通过网址来传递,看不到参数名,需要在路由中设置参数名
  2. //http://127.0.0.1:3000/search/手机/1
    app.get('/search/:kw/:a', (req,res)=>{
        req.params  //获取params传递的参数
    })

三、路由器(用来管理路由)

  1. 路由器模块
    1. 引入express模块
    2. 创建路由器对象
          const  r=express.Router()
    3. 添加路由
    4. 暴露路由器对象
          module.exports = r
  2. WEB服务器模块
    1. 引入路由器模块
    2. 挂载路由器,路由器下所有路由就会成为服务器一部分
    3. app.use('添加的前缀', 引入的路由器)
    4. // 引入自定义用户路由
      const routerUser = require("./routers/user");
      // 使用路由
      app.use("/user", routerUser);

四.中间件(插件) 

用于拦截对WEB服务器的请求;

        中间件分为应用级中间件、路由级中间件、内置中间件、第三方中间件、错误处理中间件

  1. 应用级中间件
    1. 也称为自定义中间件,就是一个函数,一旦拦截会自动调用这个函数
    2. function fn(req,res,next){
        next()  往后执行,可能是下一个中间件,或者路由
      }
      
      app.use(要拦截的网址, fn)
  2. 路由级中间件
    1. 就是路由器的使用
    2. 当拦截到网址以后,要到指定的路由器下寻找路由
    3. app.use( 要拦截的网址, 路由器 )
  3. 内置中间件
    1.  express提供的中间件,可以直接使用
    2. 将post传参转为对象
      1. app.use( express.urlencoded({
               extended: true
        }) )
    3.  托管静态资源
      1.  静态资源,包含有html、css、js、图片、视频、声音…
      2. 托管静态资源:浏览器要请求静态资源,不需要通过路由响应文件,而是自动的到指定的目录下查找。
      3. app.use( express.static('托管的目录') )
  4. 第三方中间件
    1. 都是以第三方模块的形式出现,需要先去下载安装
    2. 网址: http://www.codece.com/archives/173
    3.  multer中间件(文件上传)
  5. 错误处理中间件
    1. // 错误处理中间件
      app.use((req,res,next,err)=>{
      	console.log(err)
      	res.send({
      		code:500,
      		msg:'服务器错误'
      	})
      })
    2. app.use((err,req,res,next)=>{
          return next(err)
      })

每日一句

不积跬步,无以至千里,不积小流,无以成江海。

        "不把半步、一步积累起来,就不能走到千里远的地方,不把细流汇聚起来,就不能形成江河大海。 "

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张的俊.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值