EXPRESS
nodejs库,不用基础做起,工作简单化,点击进入官网,类似的还有 koa
特点
基于 Node.js 平台,快速、开放、极简的 Web 开发框架
搭建web服务
const express=require('express') //引入express框架
const server=express() //创建一个web服务器
server.listen(端口,地址,回调函数)
静态资源托管
server.use(express.static('静态资源路径'));
use
安装中间件、路由、接受一个函数
server.use([地址],中间件|路由|函数体)
req 请求体
request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性
req.query //获取地址栏的数据
req.body //获取非地址栏的数据 要依赖中间件
req.params //获取动态接口名 比如链接的id:server.get("/api/:id")
req.method //获取前端提交方式
注意:req.body依赖中间件
middleware, 处理自定义业务,只处理请求到结束响应的中间部分
举例 (例如使用body-parser,来去增强req的功能)
const bodyParser=require('body-parser')//引入中间件 server.use(bodyParser())//安装中间件
body-parser 使用方式,实时查询 npm,可获得最新
res 响应体
response 对象表示 HTTP 响应,即在接收到请求时向客户端发送的 HTTP 响应数据
res.send(any) //向浏览器写入和响应结束。对等 res.write + res.end
res.end(string|buffer)
res.json(json) //返回json
res.status(404).send({error:1,msg:"Sorry can't find that!"}) //设置状态码,返回一个404
接口响应
支持各种请求姿势:get、post、put、delete…
server.请求姿势API(接口名称,处理函数)
server.get(url,(req,res,next)=>{})
server.post(url,(req,res,next)=>{})
...
next()放行,让后续的中间件获取到执行权限,去执行
例如:
app.get("/api/*",(req,res,next)=>{
console.log("hello world。。")
next() //放行,让后续的中间件获取到执行权限,去执行。只有这里执行了next(),下面代码中的user才会输出
})
app.get("/api/user/*",(req,res,next)=>{
console.log("user!!!")
res.send("hello world111111") //结束了!
})
路由
告诉你去哪,对于前端,主要是导向告诉浏览器应该去哪。对于后端,可以理解为一个子服务,一个路由就是一个小的服务,处理一类接口
// 1. 创建路由
let userRouter = express.Router();
//2. 安装路由
app.use('地址',userRouter);
//2 路由处理响应
userRouter.响应API(地址, 处理函数)
例如:
//创建路由
const userRouter = express.Router()
//安装路由
app.use("/api/user",userRouter)
userRouter.get("/login",(req,res)=>{
res.send("/api/user/login....")
}) //执行api/user文件下的login文件
userRouter.get("/reg",(req,res)=>{
res.send("/api/user/reg....")
}) //执行api/user文件下的reg文件