express总结一:模块总结

一、express模块分类

  • 核心模块
  • 核心中间件
  • 路由和控制器模块
  • 扩展模块
  • 应用和架构模块
1、核心模块(内置)

核心模块分为入口模块、路由模块、请求/响应对象三个部分。

(1)入口模块即创建应用示例express()

核心方法有:

  • app.use():挂载中间件和路由。
  • app.get/post/put/delete():定义路由处理函数。
  • app.listen():启动服务器。

(2)路由模块(express.Router):用于拆分路由逻辑,实现模块化。

const router = express.Router();
router.get('/user',(req,res) =>{
  res.send('User');
})
app.use('/api',router);

(3)请求/响应对象

req:请求对象,包含请求参数,req.body,req.params,req.query等参数。

res:响应对象,包含响应方法,res.send(),res.json(),res.status()等方法。

2、核心中间件(内置)

中间件是处理请求的函数,按照顺序执行,可以访问req、res和next(),express内置一下核心中间件:

(1)express.json():解析JSON格式请求体(content-type:application/json)。

(2)express.urlencoded():解析URL编码格式请求体(content-type:application/x-www-form-urlencoded)。

(3)express.static():托管静态资源文件(html,css,图片等等)

(4)express.raw():解析原始二进制数据(如文件上传)

(5)express.text():解析纯文本请求体。

3、路由和控制器模块

(1)路由模块按照功能拆分路由文件(userRoute.js,postRoute.js),通过app.use()挂载。

(2)控制器模块:分离路由和处理逻辑,路由金负责分发请求,控制器函数负责具体业务逻辑。

// 路由
router.get('/user/:id', userController.getUser);
// 控制器
const userController = {
  getUser(req,res){
  // 处理逻辑,根据req.params.id去数据库获取当前id的用户数据
  }
}
4、扩展模块

通过npm下载使用第三方中间件即扩展模块,一下介绍几个扩展模块。

(1)路由增强

  • express-async-handler:简化异步路由的错误处理。
  • express-rate-limit:请求频率限制。

(2)安全防护

  • helmet:设置http安全头(如content-security-Policy)。
  • cors:处理跨域资源共享。

(3)模板引擎:ejs,pug,hbs,渲染服务器端模板。

(4)数据库集成

  • mongoose:用于MongoDB数据库
  • sequelize:用于sql数据库

(5)日志记录:morgan:记录请求日志(如dev,combined格式)

const morgan = require('morgan');
app.use(morgan('dev')); // 开发环境日志

(6)错误处理中间件:自定义错误处理函数,需包含四个参数,err,req,res,next

app.use((err, req, res, next)=>{
  if(err) throw err;
  console.log(req);
  res.status(500).json({ error: "服务器错误,请联系管理员" });
})
5、应用架构模块

1、项目结构

project/  
  ├─ app.js           # 入口文件  
  ├─ package.json     # 依赖配置  
  ├─ routes/          # 路由模块  
  │  ├─ userRoutes.js  
  │  └─ index.js      # 路由汇总  
  ├─ controllers/     # 控制器模块  
  ├─ middleware/      # 自定义中间件  
  └─ config/          # 配置文件(如数据库、环境变量)  

2、环境配置

  • 使用dotenv管理环境变量(.env文件)。
  • 通过app.get('env')判断环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值