Express基础使用

Express

一. 安装Express

npm init -y 
npm install express -g

二.启动Express

1.基础使用

在该项目文件夹创建app.js,并使用编辑器打开,输入以下代码并在控制台/终端输入 node app.js,启动当前服务器

//引入express模块
const express = require("express")
//创建express实例
const app = express()

//启动express实例,并部署在当前服务器端口号3000
app.listen(3000,()=>{
    console.log("项目启动")
})

2.热更新

下载nodemon模块实现热更新,下载完毕后可以在控制台输入nodemon app.js即可实现热更新

npm install nodemon -D //-D代表着下载到开发环境,打包时不会将nodemon打入

我们可以在package.json里的scripts对象中添加

scripts:{
    "dev":"nodemon app.js"
}

这样我们执行npm run dev就相当于nodemon app.js,实现了统一

三.路由

1.基础使用

浏览器访问localhost:3000/浏览器上即显示路由 / 已返回数据

//引入express模块
const express = require("express")
//创建express实例
const app = express()

app.get("/",(req,res)=>{
    res.send("路由 / 已返回数据")
})

//启动express实例,并部署在当前服务器端口号3000
app.listen(3000,()=>{
    console.log("项目启动")
})

2.Query传参

形似localhost:3000/user?name=jack

app.get("/user",(req,res)=>{
    //通过req.query.name拿到数据
    const {name} = req.query
    console.log("名字是 ",name)
    res.send(name)
})

3.Params传参

形似localhost:3000/user/123,常用于删除

app.get("/user/:id",(req,res)=>{
    //通过req.params.id
    const {id} = req.params
    console.log("用户id是 ",id)
    res.send(id)
})

4.Body传参

常用于除get请求的其他请求.如post

想要接收到req.body参数,使用中间件express.json()

使用方式 app.use(express.json())

app.post("/user",(req,res)=>{
    const {name} = req.body
    res.send(name)
})

5.创建子路由

如果将所有请求全部挂载到app上,那么程序是臃肿的,不好维护的,那么就可以创建子路由了

  1. 在该项目创建文件夹routes

  2. 新建user.js,用来管理/user路径下的请求

  3. //user.js中
    
    const express = require("express")
    const router = express.Router()
    
    router.get("/",(req,res)=>{
        res.send("user路由启动")
    })
    //导出user路由
    modules.exports = router
    
  4. //app.js
    
    const userRouter = require("./routes/user.js")
    //将userRouter映射到/user上
    app.use("/user",userRouter)
    

在浏览器中是无法发送post请求的,这时我们需要接口调试软件,如postman

四.中间件

简单来说是可以预处理到达路由之前的请求,包括但不限于在req,res加上自己写的方法

这些方法在路由层可直接调用

1.基础使用

app.use(function(req,res,next){})

app.use((req,res,next)=>{
    //所有请求都会经过此中间件
    console.log("最简单的中间件")
    //必须要next(),否则访问此接口将会一直挂起,表现为浏览器访问一直转圈
    next()
})

运行访问即可在终端。控制台输出

最简单的中间件

2.应用级中间件

作用在全部路由上的中间件,相当于作用在一级路由

app.use((req,res,next)=>{
    //res.xxx = 一系列加工函数
    console.log("应用级中间件")
    next()
})

或者是

const appMid = (req,res,next)=>{
    console.log("应用级中间件")
    next()
}
app.get("/",appMid,(req,res)=>{
    res.send("访问一级路由")
})

3.路由级中间件

作用在子路由上的中间件,只会绑定在express.Router()的实例对象(子路由)

//express.Router()方法产生的路由实例对象
//作用在router整个路径上的中间件
router.use((req,res,next)=>{
    //res.xxx = 一系列加工函数
    console.log("路由级中间件")
    next()
})

或者是

const routerMid = (req,res,next)=>{
    console.log("路由级中间件")
    next()
}
//只会作用在router路径下的/下的中间件
router.get("/",routerMid,(req,res)=>{
    res.send("访问二级路由")
})
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值