- //应用级别的中间件(全局中间件)
- app.use(function(req,res,next){
-
- console.log('第一个中间件')
- next()
- })
-
- //应用级别的中间件(局部局中间件)
- app.get('/user',mv1,mv2,(req,res)=>{
- res.send(' 响应客户端的127.0.0.1/user的get请求 局部中间件会生效')
- })
-
- //应用级别的中间件(局部局中间件)
- app.post('/user',mv1,mv2,(req,res)=>{
- res.send(' 响应客户端的127.0.0.1/user的get请求 局部中间件会生效')
- })
- //导入express
- const express=require('express')
- //创建路由对象
- const router=express.Router()
- //路由级别中间件
- router.use(function(req,res,next){
- console.log('中间件')
- next()
- })
-
- //挂载路由模块
- app.use('/',router)
-
- //导入express模块
- const express=require('express')
-
- //创建web服务器
- const app=express()
- //挂载路由
- app.get('/',(req,res)=>{//监听get请求
- throw new Error('服务器内部发生错误') //new认为抛出一个自定义错误-----程序无法执行就
- res.send('处理函数 这是服务器给的 响应客户端的根url的get请求')
- })
- //定义错误级别的中间件 捕获整个项目中的错误
- app.use(function(err,req,res,next){
- console.log('错误!'+err.message)
- res.send('Error!'+err.message)
- })
-
- //启动服务器、使用80端口
- app.listen(80,()=>{
- console.log('http://127.0.0.1 启动成功')
- })
- app.use(express.static(path.join(__dirname,'../静态资源1')))//这里有一个缺省值 是127.0.0.1 根目录
- app.use(express.json())
- //配置解析application/x-222-form-urlencoded格式数据的内置中间件
- app.use(express.urlencoded({extended:false}))
通过 postman或者其他软件(我使用了postwoman)向服务器发送请求体数据,看服务器是否可以拿到数据,请求体数据放在body面板中进行发送,服务器通过req.body属性接收客户端发送的请求体(表单数据),如果不配置解析表单数据的中间件,则req.body默认等于undefined-------是固定写法
express.json解析json格式的请求数据
- const express=require('express')
- const app=express()
- //其他中间件在路由之前配置解析json数据表单数据的中间件
- app.use(express.json())//挂载在req上
-
- //定义一个路由 --在路由中得到请求到服务器的时间
- app.post('/user',(req,res)=>{
- res.send('服务器响应:OK')
- //在服务器中使用
- console.log(req.body)//属性去接收客户端的发送来请求体的数据——默认情况下,如果不配置解析表单数据的中间件,则req.body默认等于undefined
- })
-
-
- app.listen(80,()=>{
- console.log('服务器启动成功:127.0.0.1')
- })


express.urlencoded解析URL-encoded格式的请求数据(有兼容性,在4.16.0+版本可用)-键值对)app.use(express.urlencoded({extended:false---不使用第三方解析方式,只是自身的解析方式,如果是true就使用第三方解析}))-客户端提交的请求体数据是什么样子的,服务器端获取解析表单的数据才会是=使得服务器端的req.body有数据-------解析完成会挂载到req.body属性上
- const express=require('express')
- const app=express()
- //其他中间件在路由之前配置解析json数据表单数据的中间件
-
- app.use(express.urlencoded({extended:false}))
-
- //定义一个路由 --在路由中得到请求到服务器的时间
- app.post('/c',(req,res)=>{
- res.send('服务器响应:OK')
- //在服务器中使用
- console.log(req.body)//属性去接收客户端的发送来请求体的数据——默认情况下,如果不配置解析表单数据的中间件,则req.body默认等于undefined
- })
-
-
- app.listen(80,()=>{
- console.log('服务器启动成功:127.0.0.1')
- })


- const express=require('express')
- //创建服务器
- const app=express()
- //导入解析表单数据的中间件
- const parser=require('body-parser')
- //使用app.use注册中间件
- app.use(parser.urlencoded({extended:false}))
-
- //定义一个路由
- app.post('/user',(req,res)=>{
- res.send('路由ok')
- console.log(req.body)//接收数据---默认是undefined--需要进行解析表单数据的接收配置
- })
-
-
- app.listen(80,()=>{
- console.log('服务器启动成功 127.0.0.1')
- })