初识express(简介,安装和基本使用),路由(express处理路由)

目录

express的简介

express的安装和基本使用(不能全局安装)

express的简单使用

express生成的服务器对象

req和res

工具的使用

nodemon

rest client

路由

路由的概念

express处理路由

路由的匹配机制

express的模块化路由


 

express的简介

express的安装和基本使用(不能全局安装)

  • express是用来搭建web网站服务器 或 API接口服务器的 因此 在安装express之前 应该先 生成 package.js

  • 安装步骤如下

    • npm init 生成package.json

    • npm i express

express的简单使用

  • //1.引入 express模块
    let express = require("express");
    //2.使用express 创建 服务器对象
    let app = express();//我们引入的express 是一个函数 函数的返回值 就是服务器对象
    ​
    ​
    ​
    //3.调用listen方法 监听端口
    app.listen(3000,()=>{
        console.log("服务器正在运行...")
    })

  • 注意:我们编写的express项目包名 不能命名为 express 否则 会和 express模块包 产生冲突

express生成的服务器对象

  • express是使用服务器对象 来单独进行路由配置的

  • 服务器对象 拥有一些方法 分别是 get、post、put、delete等

  • 用法:

    • 服务器对象.get/post/put/delete("路由",(req,res)=>{
          //这个回调函数 会在指定路由触发
      })

  • 实例代码

    • //1.引入 express模块
      let express = require("express");
      //2.使用express 创建 服务器对象
      let app = express();//我们引入的express 是一个函数 函数的返回值 就是服务器对象
      
      app.get("/index",(req,res)=>{
          cosnole.log("我是首页");
          res.end("index")
      })//当客户端通过get请求 访问 index路由的时候 就会执行这个回调函数
      
      app.post("/login",(req,res)=>{
          res.end("login")
      })//当客户端通过post请求 访问 login路由的时候 就会执行这个回调函数
      
      //3.调用listen方法 监听端口
      app.listen(3000,()=>{
          console.log("服务器正在运行...")
      })

req和res

  • 在express创建的服务器对象的路由配置中 回调函数里存在两个形参 req 和 res

  • res:主要用来进行 响应

    • 响应

      • res.send(要响应的数据)

        • 作用:给客户端 响应指定数据

      • res.sendFile("文件绝对路径")

        • 作用:响应指定路径的文件

      • res.json(要响应的js数据)

        • 作用:先将指定js数据 压缩为 json字符串 之后 再进行响应

    • 设置响应头

      • res.set("键名","键值")

    • 设置MIME类型

      • res.type("响应文件的后缀名")

      • 例如:res.type(".html")

  • req:主要用来处理 请求相关的问题

    • req.query:可以接收到 请求报文中 提交的数据(只能接收get请求提交的数据)

    • 通过动态路由提交数据

      • 我们之前写路由 都是写作:/index /lodin

      • 其实 我们的路由 还可以继续向后写 称为 多级路由:/index/banner /index/list/xxx

      • req形参 具备一个属性 params 可以通过设置动态路由 来接收 一级路由后面的路由内容

    • params的用法

      • app.get("/一级路由/:键名",(req,res)=>{
            console.log(req.params);//{键名:一级路由后续的路由}
        })

      • 注意:如上述代码所示,我们在一级路由后面 添加了动态路由的键名 那么就只能接收到 二级路由 至于后续的三级四级路由则无法接到

工具的使用

  • nodemon

    • 自动更新js文件的运行,热更新

    • npm 下载 下载之后 我们可以使用

    • 执行命令:nodemon 要运行的js文件

    • 来运行nodejs文件 从而实现热更新

  • rest client

    • 接口测试

    • vscode带的插件

    • 用法:

      • 安装完这个插件之后 我们就可以 编写.http文件

      • .http文件的内容为 请求报文

    • 语法

      • 注释:

        • #注释内容
      • 声明变量

        • @变量名 = 变量值
      • 使用变量

        • {{变量名}}
      • 一个http文件中 可以写入多个 请求报文 但是 各个请求报文之间 要使用### 隔开

    • 实例代码

      • # 这是注释内容
        # 下面 我们可以先声明一些 统一要用到的变量
        @url = http://127.0.0.1:3000
        ​
        # 下面 我们就可以使用变量 来进行相关操作了
        GET {{url}}/index HTTP/1.1
        ​
        # 各个请求报文之间 应该使用###隔开
        ###
        POST {{url}}/login HTTP/1.1

    • 注意:在声明http变量的时候 注意 赋值不要加引号

路由

路由的概念

  • 广义上来讲,路由就是映射关系。对于我们网络请求中的路由是:每一次请求对应的一个请求处理的函数。

  • 包括:请求方式 和 路径

express处理路由

  • 在express中 我们编写路由的语法规则如下

    • 服务器对象.请求方式("路由路径",(req.res)=>{})
      ​
      app.get("/index",(req.res)=>{
          
      })

  • express中 处理路由的优点是 可以很直观的将 路由的 路径 和 请求方式 都快捷的设置好

路由的匹配机制

  • express中路由的匹配机制是 从上到下的

  • 路由的匹配 就会从上到下 进行注意匹配 如果前面的路由匹配成功了 后续的相同路由 就不会再检测了,只有第一个/index路由可以匹配成功 并执行其后的回调函数 后续所有/index路由 都无法匹配

express的模块化路由

  • 所谓的模块化路由 就是将 express搭建的服务器代码中 路由部分 单独提取为一个js模块文件

  • 之后 如果想使用路由 则通过引入 并使用

  • 因此 模块化路由 至少需要两个文件——服务器js文件 和 路由模块js文件

  • 下面 我们一起来看一看 两个文件该怎样编写

    • 路由模块js文件

      • //1.引入express
        let express = require("express");
        //2.调用express的Router方法  生成 路由对象
        let router = express.Router();//返回值 就是 路由对象
        ​
        //3.使用路由对象 配置路由 配置路由的写法 和 普通的express配置路由 相同
        //路由对象.请求方式("路径",(req,res)=>{})
        router.get("/index",(req,res)=>{});
        ...
        ​
        //4.将配置好路由的 路由对象  暴露出去
        module.exports = router;

    • 服务器js文件

      • //1.引入 express模块
        let express = require("express");
        //1.1 引入路由模块文件
        let router = require("路由模块文件的路径")
        //2.使用express 创建 服务器对象
        let app = express();//我们引入的express 是一个函数 函数的返回值 就是服务器对象
        
        //2.1使用路由模块 用法1:服务器对象.use(路由模块对象)
        app.use(router);
        //用法2:服务器对象.use("一级路由路径",路由模块对象)
        app.use("/index",router)
        //这种写法 表示 一级路由为 /index  router路由模块中 配置的 都是 /index一级路由的 二级路由
        //因此 我们如果想访问 路由配置的页面 需要写作:/index/xxx
        
        //3.调用listen方法 监听端口
        app.listen(3000,()=>{
            console.log("服务器正在运行...")
        })

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值