彻底学懂express框架

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 彻底学懂express框架

一、认识Web框架


1.前面我们已经学习了使用 http 内置模块来搭建Web服务器,为什么还要使用框架?

  • 原生http在进行很多处理时,会较为复杂;
  • 有URL判断、Method判断、参数处理、逻辑代码处理等,都需要我们自己来处理和封装;
  • 并且所有的内容都放在一起,会非常的混乱;

2.目前在Node中比较流行的Web服务器框架是express、koa;

  • 我们先来学习express,后面再学习koa,并且对他们进行对比;

3.express早于koa出现,并且在Node社区中迅速流行起来:

  • 我们可以基于express快速、方便的开发自己的Web服务器;
  • 并且可以通过一些实用工具和中间件来扩展自己功能;


二、Express框架


PS:Express整个框架的核心就是中间件


2.1 express安装


Express 的使用过程有两种方式


  1. 通过express提供的脚手架,直接创建一直应用骨架(推荐)
  2. 从零搭建自己的express应用结构

方式一:


  • 安装express-generator脚手架

npm install -g express-generator


  • 创建项目

express express-demo


  • 安装依赖

npm install


  • 启动项目

node bin\www


方式二: 从零搭建自己的express结构


  • 初始化

npm init -y


  • 在当前目录下安装express

npm install express


  • 创建项目基础

微信图片_20221009220756.png

创建第一个项目

微信图片_20221009220831.png

2.2 认识express中间件


Express是一个路由和中间件的Web框架,它本身的功能非常少: Express应用程序本质上是一系列中间件函数的调用

中间件是什么呢?


中间件的本质是传递给express的一个回调函数;

这个回调函数接受三个参数:

请求对象(request对象)

响应对象(response对象)

next函数(在express中定义的用于执行下一个中间件的函数)

中间件中可以执行哪些任务呢?


执行任何代码;

更改请求(request)和响应(response)对象;

结束请求-响应周期(返回数据);

调用栈中的下一个中间件。


2.3 应用中间件–自己编写


express主要提供了两种方式:app/router.use和app/router.methods。下面先学习use的用法


1. 普通中间件

微信图片_20221009221004.png

2. 路径和方法中间件微信图片_20221009221026.png


2.4 应用中间件—body解析(JSON和urlencoded)


  • express有内置一些帮助我们完成对request解析的中间件;
  • registry仓库中也有很多可以辅助我们开发的中间件;

方式一:编写解析request body 中间件(不推荐)

微信图片_20221009221125.png

方式二:用express内置函数

微信图片_20221009221157.png

2.5 应用中间件—body解析(form-data)

微信图片_20221009221230.png


2.6 应用中间件—body解析(form-data文件上传)

微信图片_20221009221300.png

2.7 应用中间件—传递参数params和query

image.png

image.png

2.8 Express的路由


如果我们将所有的代码逻辑都写在app中,那么app会变得越来越复杂:


  • 一方面完整的Web服务器包含非常多的处理逻辑;
  • 另一方面有些处理逻辑其实是一个整体,我们应该将它们放在一起。

我们可以使用 express.Router来创建一个路由处理程序:


  • 一个Router实例拥有完整的中间件和路由系统;
  • 因此,它也被称为 迷你应用程序(mini-app)

完整使用:


创建用户路由(user.js)文件

/**
 * eg:创建常见一个用户路由
 * 请求所有用户信息:get/users
 * 请求某个用户的信息:get/users/:id
 * 添加某个用户的信息:post/users body {username:password:}
 * 删除某个用户的信息:delete/users/:id
 * 更新某个用户信息:patch/users/:id
 */
const express = require('express')
const userRouter = express.Router();
userRouter.get('/',(req,res,next)=>{
  res.json(['elva','eva','egg'])
})
userRouter.get('/:id',(req,res,next)=>{
  res.json(`${req.params.id}用户信息`)
})
userRouter.post('/',(req,res,next)=>{
  res.json('create user success')
})
module.exports = userRouter

导入使用

const express = require('express')
const userRouter = require('./routers/user')
const app = express()
app.use('/users',userRouter)
app.listen(8000,()=>{
  console.log('路由服务器启动成功');
})

注意:express的精髓就是对于中间件的使用

相关文章
|
28天前
|
JavaScript 前端开发 中间件
探索后端技术:Node.js与Express框架的完美融合
【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。
|
2月前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实战指南
【9月更文挑战第6天】在数字化时代的潮流中,后端开发作为支撑现代Web和移动应用的核心,其重要性不言而喻。本文将深入浅出地介绍如何使用Node.js及其流行的框架Express来搭建一个高效、可扩展的后端服务。通过具体的代码示例和实践技巧,我们将探索如何利用这两个强大的工具提升开发效率和应用性能。无论你是后端开发的新手还是希望提高现有项目质量的老手,这篇文章都将为你提供有价值的见解和指导。
|
3月前
|
JavaScript 前端开发 中间件
构建高效后端服务:Node.js与Express框架的完美搭档
【8月更文挑战第28天】在追求高性能、可扩展和易维护的后端开发领域,Node.js和Express框架的组合提供了一种轻量级且灵活的解决方案。本文将深入探讨如何利用这一组合打造高效的后端服务,并通过实际代码示例展示其实现过程。
|
3月前
|
JavaScript 中间件 API
深入浅出Node.js后端框架——Express
【8月更文挑战第27天】在这篇文章中,我们将一起探索Node.js的热门框架Express。Express以其简洁、高效的特点,成为了许多Node.js开发者的首选框架。本文将通过实例引导你了解Express的核心概念和使用方法,让你快速上手构建自己的Web应用。
|
3月前
|
存储 JavaScript NoSQL
构建高效Web应用:使用Node.js和Express框架
【8月更文挑战第30天】本文将引导你了解如何使用Node.js和Express框架快速搭建一个高效的Web应用。通过实际的代码示例,我们将展示如何创建一个简单的API服务,并讨论如何利用中间件来增强应用功能。无论你是新手还是有经验的开发者,这篇文章都将为你提供有价值的见解。
|
14天前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的完美结合
【10月更文挑战第21天】本文将引导你走进Node.js和Express框架的世界,探索它们如何共同打造一个高效、可扩展的后端服务。通过深入浅出的解释和实际代码示例,我们将一起理解这一组合的魅力所在,并学习如何利用它们来构建现代Web应用。
38 1
|
2天前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
3天前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的融合之道
【10月更文挑战第31天】在追求快速、灵活和高效的后端开发领域,Node.js与Express框架的结合如同咖啡遇见了奶油——完美融合。本文将带你探索这一组合如何让后端服务搭建变得既轻松又充满乐趣,同时确保你的应用能够以光速运行。
8 0
|
28天前
|
JSON JavaScript 前端开发
Node.js Express 框架
10月更文挑战第7天
27 2
|
1月前
|
Web App开发 JavaScript 前端开发
使用Node.js和Express框架构建Web服务器
使用Node.js和Express框架构建Web服务器