【Node.js工程师养成计划】之express中间件与接口规范

一、Express中间件的概念与基本应用

const express = require('express')

// 加一个注释,用以说明,本项目代码可以任意定制更改
const app = express()

const PORT = process.env.PORT || 3000

// // 挂载路由
// app.use('/api', router)

// // 挂载统一处理服务端错误中间件
// app.use(errorHandler())

app.get('/', (req, res) => {
  console.log(`${req.method}, ${req.url}, ${Date.now()}`);
  res.send('/index')
})

app.get('/register', (req, res) => {
  console.log(`${req.method}, ${req.url}, ${Date.now()}`);
  res.send('/iregisterdex')
})

app.get('/login', (req, res) => {
  console.log(`${req.method}, ${req.url}, ${Date.now()}`);
  res.send('/login')
})

app.listen(PORT, () => {
  console.log(`Server is running at http://localhost:${PORT}`)
})

封装个方法:

const express = require('express')

// 加一个注释,用以说明,本项目代码可以任意定制更改
const app = express()

const PORT = process.env.PORT || 3000

function logs(req) {
  console.log(`${req.method}, ${req.url}, ${Date.now()}`);
  console.log(`${req.method}, ${req.url}, ${Date.now()}`);
  console.log(`${req.method}, ${req.url}, ${Date.now()}`);
}

app.get('/', (req, res) => {
  logs(req)
  res.send('/index')
})

app.get('/register', (req, res) => {
  logs(req)
  res.send('/iregisterdex')
})

app.get('/login', (req, res) => {
  logs(req)
  res.send('/login')
})

app.listen(PORT, () => {
  console.log(`Server is running at http://localhost:${PORT}`)
})

发现也并不完美

写个中间件

const express = require('express')

// 加一个注释,用以说明,本项目代码可以任意定制更改
const app = express()

const PORT = process.env.PORT || 3000

app.use((req, res, next) => {
  console.log(`${req.method}, ${req.url}, ${Date.now()}`);
  next()
})

// // 挂载路由
// app.use('/api', router)

// // 挂载统一处理服务端错误中间件
// app.use(errorHandler())

// 中间件写在要使用的逻辑前面
app.get('/', (req, res) => {
  res.send('/index')
})

app.get('/register', (req, res) => {
  res.send('/register')
})

app.get('/login', (req, res) => {
  res.send('/login')
})

app.listen(PORT, () => {
  console.log(`Server is running at http://localhost:${PORT}`)
})

二、不同中间件类别的使用方式

中间件分类:

  • 应用程序级别中间件
  • 路由级别中间件
  • 错误处理中间件
  • 内置中间件
  • 第三方中间件

正在更新。。。

相关推荐

  1. Express中间(完善)

    2024-05-01 15:20:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-01 15:20:01       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-01 15:20:01       97 阅读
  3. 在Django里面运行非项目文件

    2024-05-01 15:20:01       78 阅读
  4. Python语言-面向对象

    2024-05-01 15:20:01       88 阅读

热门阅读

  1. 【笔试题汇总】美团笔试题题解 第五场 2024.4.27

    2024-05-01 15:20:01       28 阅读
  2. openwrt提供的四个文件分别是干什么的

    2024-05-01 15:20:01       110 阅读
  3. 工具类,包含线程池,excel图片处理

    2024-05-01 15:20:01       37 阅读
  4. json.parse(json.stringify)的弊端

    2024-05-01 15:20:01       29 阅读
  5. Element-UI 快速入门

    2024-05-01 15:20:01       37 阅读
  6. 前端html中iframe的基本使用

    2024-05-01 15:20:01       32 阅读
  7. 【笔试题汇总】华为春招笔试题题解 2024-3-20

    2024-05-01 15:20:01       37 阅读
  8. RocketMQ与Kafka深度对比:消息中间件的选择之战

    2024-05-01 15:20:01       25 阅读