Express
-
Express是基于node.js中http模块进一步封装出的包
-
使用Express我们可以方便快速的创建Web网站服务器或API接口服务器
安装
npm i express@4.17.1 //版本可根据自己需要
使用express实例一个服务
const express = require("express") //引入express
const server = express() //创建一个实例
server.listen(8000,()=>{ //开启服务
console.log("服务已开启,8000端口监听中~~");
})
设置响应get和post请求
const express = require("express") //引入express
const server = express() //创建一个实例
// 设置响应客户端的get和post请求
server.get('/user',(req,res)=>{ //参数为请求url和回调函数
res.send('<h1>请求成功!get</h1>')
})
server.post('/hello',(req,res)=>{
res.send('<h1>请求成功!post</h1>')
})
server.listen(8000,()=>{ //开启服务
console.log("服务已开启,8000端口监听中~~");
})
用postman测试接口
post:http://127.0.0.1:8000/hello
get:http://127.0.0.1:8000/user
响应正常
获取用户输入的url地址携带的query参数
参数可以通过回调函数中req.query获取
const express = require("express") //引入express
const server = express() //创建一个实例
// 设置响应客户端的get和post请求
server.get('/user',(req,res)=>{ //参数为请求url和回调函数
res.send(req.query)
})
server.listen(8000,()=>{ //开启服务
console.log("服务已开启,8000端口监听中~~");
})
测试接口
get:http://127.0.0.1:8000/user?name=jack&age=18
正常响应
获取动态参数
参数可以通过回调函数中req.params获取
const express = require("express") //引入express const server = express() //创建一个实例 // 设置响应客户端的get和post请求 server.get('/user/:id/:name',(req,res)=>{ //参数为请求url和回调函数 res.send(req.params) }) server.listen(8000,()=>{ //开启服务 console.log("服务已开启,8000端口监听中~~"); })
测试接口
get:http://127.0.0.1:8000/user/18/小李
正常响应
中间件的使用
定义一个全局的中间件
const express = require("express")
const server = express()
// 定义一个中间件
let a = (req,res,next)=>{
console.log("我是一个简单的中间件,我起作用了!");
next() // 必须要在中间件执行完后调用该函数交给下一个中间件,否则后面的代码将不会被执行
}
// 中间件通过服务实例注册后为全局中间件,即server.use(a)
server.use(a) //注册为全局中间件
server.get('/',(req,res)=>{
res.send('<h1>响应成功!</h1>')
})
server.listen(8000,()=>{
console.log("服务已开启,8000端口监听中~~");
})
局部中间件的使用
const express = require("express")
const server = express()
// 定义一个中间件
let a = (req, res, next) => {
console.log("我是一个简单的中间件a,我起作用了!");
next() // 必须要在中间件执行完后调用该函数交给下一个中间件,否则后面的代码将不会被执行
}
// 中间件通过服务实例注册后为全局中间件,即server.use(a)
server.use(a) //注册为全局中间件
let b = (req, res, next) => {
console.log("我是一个简单的中间件b,我起作用了!");
next() // 该中间件未经过全局注册可以在下面的路由中使用,局部中间件只会在使用后起作用
}
server.get('/', (req, res) => {
res.send('<h1>响应成功!</h1>')
})
server.get('/user', b, (req, res) => { //使用中间件b
res.send('<h1>响应成功!</h1>')
})
server.listen(8000, () => {
console.log("服务已开启,8000端口监听中~~");
})
中间件的分类
中间件有5大类 路由级别中间件 ,应用级别中间件,错误级别中间件,第三方中间件,express内置中间件,
-
通过app.use()或app.get()等绑定在app实例上的中间件叫做应用级别的中间件
-
绑定到exprss.Router()实例上的中间件,叫做路由级别的中间件,用法与应用级别的中间件用法相同
-
错误级别的中间件可以处理程序抛出的异常,该中间件需要定义在程序的末尾否则不生效,该中间件收4个参数
app.use((err,req,res,next)=>{})
-
使用第三方中间件需要下载应用并注册
-
express内置中间件之间引入使用