Skip to content

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({})