当前位置: 首页 > backend >正文

Express 框架

Express 是基于 Node.js 平台的极简 Web 应用框架,最小化封装,核心代码仅约 1800 行

与传统HTTP模块对比

特性

原生HTTP模块

Express

路由管理

手动解析URL

声明式路由系统

请求处理

单一回调函数

中间件链式处理

头部处理

手动设置

便捷方法

扩展性

需要自行封装

中间件生态系统

开发效率

较低

高效

路由

// 基础路由示例
app.get('/users/:id', (req, res) => {const userId = req.params.idres.send(`用户ID: ${userId}`)
})// RESTful API 设计
app.route('/articles').get(getArticles).post(createArticle).put(updateArticle).delete(deleteArticle)

 基础

const express = require('express')
const app = express()
const port = 3000// 中间件配置
app.use(express.json())
app.use(express.urlencoded({ extended: true }))// 路由定义
app.get('/', (req, res) => {res.json({ status: '服务运行正常', timestamp: new Date() })
})// 错误处理中间件
app.use((err, req, res, next) => {console.error(err.stack)res.status(500).send('服务器错误!')
})// 启动服务
app.listen(port, () => {console.log(`服务运行在 http://localhost:${port}`)
})

 常用中间件

中间件名称

功能描述

安装命令

morgan

HTTP请求日志记录

npm install morgan

helmet

安全头部设置

npm install helmet

cors

跨域资源共享支持

npm install cors

express-session

会话管理

npm install express-session

passport

身份认证

npm install passport

性能优化:

优化方向

实现方案

示例配置/代码

中间件优化

精简中间件数量

移除不必要的中间件

路由缓存

使用路由缓存中间件

app.enable('view cache')

集群模式

使用cluster模块

cluster.fork()

静态资源

使用CDN加速

express.static配置缓存头

数据库连接

使用连接池

mysql.createPool()

 

http://www.xdnf.cn/news/8490.html

相关文章:

  • YOLOv12 目标检测算法深度解析
  • 热点│衰老过程中的表观遗传调控
  • 机器学习数学基础
  • linux ptrace 图文详解(九) gdb如何判断被tracee唤醒的原因
  • 一文详解生成式 AI:李宏毅《生成式 AI 导论》学习笔记
  • Spring Boot项目配置核心 - pom.xml的依赖管理与构建优化
  • 第六章:事件风暴 · 用户的意志
  • VKontakte(VK)注册教程
  • 什么是图神经网络?它用来解决什么问题?它有什么优势?
  • ROS合集(六)SVIn2 点云地图与 3D Tiles 可视化【预览版】
  • [原理理解] 基于diffusion的超分任务时候遇到的CLIPTokenizer和CLIPTextModel
  • facebook开源Triton编写GPU内核的编程模型速读:KernelLLM
  • Python 中的多线程与多进程:真假并行的直观对比
  • synchronized 实现原理
  • 20250523-关于Unity中的GUID简介(未完待续)
  • Ntfs!FindFirstIndexEntry函数中ReadIndexBuffer函数的作用是新建一个Ntfs!_INDEX_LOOKUP_STACK结构
  • Kotlin-数组,集合类以及序列
  • 解决MybatisPlus使用Druid1.2.11连接池查询PG数据库报Merge sql error的一种办法
  • 豆瓣的 PyPI 源关闭后替代方案
  • 怎样判断服务器网络质量的状态?
  • 【博客系统】博客系统第四弹:令牌技术
  • 亚马逊跨境战:解码退货率管控的底层逻辑与战术拆解
  • 论文解读: 2023-Lost in the Middle: How Language Models Use Long Contexts
  • Java与Go差别在哪
  • **代换积分法**或**变量替换法**)
  • 【论文阅读】Stop Overthinking:高效大模型推理技术综述
  • 26考研|高等代数:λ-矩阵
  • 07_分类器不确定评估
  • 京东外卖分润系统部署实操!0门槛入驻+全平台接入+自定义比例...这些人,赚翻了!
  • Terraform本地windows部署