get请求参数有两种方式:
query参数:req.query获取
路径? 后面的参数表示query参数
params参数:req.params
动态参数 路由上需要使用 :参数名称 表示 每个参数之间使用/分割
动态参数传递时需要注意顺序
post请求参数获取数据:
req.body 需要配置中间件才能使用 两个方法 json() urlencoded()
配置post请求方式的中间件:
app.use(express.json()) 返回数据格式为json对象
app.use(express.urlencoded({ extend : false }))
代码部分:
let express = require("express")
let app = express()
app.use(express.json())
app.use(express.urlencoded({extended:false}))
//配置ejs
app.set("view engine","ejs")
//get请求获取参数一
app.get("/home",(req,res)=>{
let urldata = req.query
res.send(urldata)
})
//get获取参数二
app.get("/work/:name/:age/",(req,res)=>{
let data = req.params
res.send(data)
})
//post获取参数
app.post("/loda",(req,res)=>{
let data = req.body
res.send(data)
})
//配置接口
app.listen(3001,()=>{
console.log("服务器已启动...")
})
路由模块化:
路由模块化 : 将操作不同模块的功能放到一个js文件下 ,该js文件最终需要将路由对象暴露 module.exports = router
在服务器文件中,需要导入路由模块,并配置中间
js文件部分:
// 操作图书,模块
let express = require("express")
//创建路由对象
let router = express.Router()
//将所有功能定义在router上
router.get("/add",(req,res)=>{
res.send("添加图书")
})
router.get("/del",(req,res)=>{
res.send("删除图书")
})
//导出
module.exports = router
// 操作商品模块
let express = require("express")
//创建路由对象
let router = express.Router()
//操作功能都定义在router上即可
router.get("/add",(req,res)=>{
res.send("添加商品")
})
router.get("/del",(req,res)=>{
res.send("删除商品")
})
//导出
module.exports = router
服务器文件部分:
let express = require("express")
let app = express()
//导入路由模块
let shop = require("./router/shop")
let box = require("./router/box")
//配置中间件,将所有路由放在app上
app.use("/",shop)
app.use("/box",box)
//配置端口号
app.listen(3002,()=>{
console.log("服务器已经启动.....")
})