Express
基本使用
- 安装
npm i express
- 导入
const express = require('express')
- 创建
const app = express()
- 监听
get app.get('url',(req,res)=>{})
- 监听
post app.post('url',(req,res)=>{})
- 响应
res.send(str/json)
- 启动
app.listen(80,()=>{})
- req
req.query
获取查询字符串?a=b&c=5
的内容req.params
获取url中通过/:id/:name
匹配到的动态参数
- res
.send()
- 托管静态资源
app.use(['/prefix',]express.static('./publicFolder'))
- 杂项
- nodemon 实时更新
路由(单独文件)
js
const router = express.Router()
router.get('url',()=>{})
router.post('url',()=>{})
module.exports = router
js
const userRouter = require('filePath')
app.use(['prefix',]userRouter)
//app.use()用于注册全局中间件
中间件
const mw = function(req,res,next){next()}
app.use(mw)
全局中间件app.get('url',mw1,mw2,(req,res)=>{res.send()})
局部中间件- 共享req和 res对象
- 在路由前注册中间件
- 可以按顺序连续调用多个中间件
- 在最后写上next()
- 分类
- 应用级别
get/post() use()
绑定到app上的 - 路由级别
- 绑定到
express.Router()
实例上的
- 绑定到
- 错误级别
- 捕获发生的异常错误(err,req,res,next)=>{}
- 注册在所有路由之后
- Express 内置
express.static()
托管静态资源express.json()
解析json格式的请求体数据app.use(express.json())
log(req.body)
默认undefined
express.urlencoded()
解析请求体数据app.use(express.urlencoded({extended:false}))
- 第三方
body-parser
const parser = require('body-parser')
app.use(parser.urlencoded({extended:false}))
- 自定义中间件 略
- 应用级别
数据库
npm init -y
npm i mysql
const mysql = require('mysql')
const db = mysql.createPool({})