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 = routerjs
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-parserconst parser = require('body-parser')app.use(parser.urlencoded({extended:false}))
- 自定义中间件 略
- 应用级别
数据库
npm init -ynpm i mysqlconst mysql = require('mysql')const db = mysql.createPool({})