0


Node.js | express 框架开篇

CSDN话题挑战赛第2期
参赛话题:学习笔记

在这里插入图片描述


目录


🔽 前言

NodeJS

的基础内容已经完结,现在开始要步入框架的学习了,本篇文章将初步去探索

express

这个框架,让我们开始吧!

1️⃣ express介绍

Express是基于

Node.js

平台,快速、开放、极简的

Web

开发框架。

  • Web 应用程序Express 是一个保持最小规模的灵活的 Node.js``````Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。
  • API 使用您所选择的各种 HTTP 实用工具和中间件,快速方便地创建强大的 API
  • 性能Express 提供精简的基本 Web 应用程序功能,而不会隐藏您了解和青睐的 Node.js 功能。
  • 框架 许多 流行的开发框架 都基于 Express 构建。

2️⃣ 初步上手

安装:

npm i express
express

为我们提供的最强大的能力就是一套超级简单且强大的路由系统,我们先看一下使用

原生NodeJS

开发服务器的代码:

const http =require("http");const server = http.createServer();

server.on("request",(req, res)=>{// req:接受浏览器传的参数,request对象// res:返回渲染的内容,response对象// 路由匹配switch(req.url){case"/":
            res.end(JSON.stringify({name:"ailjx",age:18,}));break;default:
            res.end("404");break;}});

server.listen(3000,()=>{
    console.log("服务器启动成功!");});

上面我们使用原生

NodeJS

开发了一个简单的后端服务器,可以想象到,使用原生

NodeJS

开发最麻烦的问题就是对路由的处理了

  • 需要手动使用分支去匹配用户请求的路由
  • 在返回数据时需要自己手动转换数据格式
  • 对于一些网络请求,如GETPOST请求等,需要我们针对不同的请求去做不同的适配
  • 开发出的API代码结构不够清晰,相对繁琐

了解了原生开发的问题所在,我们现在尝试使用

express

去搭建一个与上面一样的服务器:

// 引入expressconst express =require("express");const app =express();// 注册路由(get请求)
app.get("/",(req, res)=>{// req:接受浏览器传的参数,request对象// res:返回渲染的内容,response对象
    res.end(JSON.stringify({name:"ailjx",age:18,}));});// 注册全局中间件,上面的路由都没有匹配时会进入到这里
app.use((req, res)=>{
    res.end("404");});

app.listen(3000,()=>{
    console.log("服务器启动成功!");});

我们使用

express

时能直接根据

路由—>处理函数

的方式去注册一个个路由,

express

路由处理函数中的

req

res

参数完全兼容原生

NodeJS

req

res

参数,并且在其基础上还添加了额外的方法

app.get("/",(req, res)=>{// express中的req和res完全与原生的兼容,原生的write和end等方法都能使用
    res.write("hello world");
    res.end();});
res.send

express

中新添加的方法,

send

方法很聪明,它会自动识别/转换数据的格式从而自动设置响应头,不需要我们手动调用

res.writeHead

设置响应头:

app.get("/",(req, res)=>{// express中的req和res完全与原生的兼容,并在原生的基础上添加了格外的属性
    res.send("hello world");});
app.get("/",(req, res)=>{// express中的req和res完全与原生的兼容,并在原生的基础上添加了格外的属性// 1. 直接传递数据,send会自动JSON化我们的数据
    res.send({name:"ailjx",age:18,});// res.send([1, 2, 3]);});
app.get("/",(req, res)=>{// 2. 直接传递HTML文档,send会自动帮我们处理响应头和编码格式
    res.send(`<h1>你好呀!</h1>`);});
express

路由的另一个强大之处在于它可以设置模糊匹配

// 匹配 acd 和 abcd
app.get('/ab?cd',function(req, res){
  res.send('ab?cd');});// 匹配 /ab/******
app.get('/ab/:id',function(req, res){
  res.send('aaaaaaa');});// 等等...

还可以设置请求类型:

app.post("/login",(req, res)=>{
    res.send("登录成功!");});
app.delete("/login",(req, res)=>{
    res.send("删除成功!");});
app.put("/login",(req, res)=>{
    res.send("修改成功!");});

上面简单介绍了

express

的部分特性,关于

express

的更多更详细的内容博主会持续更新

从上面的几个例子你应该就能看到

express

路由的优势所在,在

express

中还有一个非常重要的概念:中间件

3️⃣ 中间件

Express

是一个自身功能极简,完全是由路由中间件构成一个的

web

开发框架:从本质上来说,一个 Express应用就是在调用各种中间件。

简单来说中间件(

Middleware

) 就是一个函数,它可以访问请求对象(request object (

req

)), 响应对象(response object (

res

)), 和

web

应用中处于

请求-响应

循环流程中的中间件,一般被命名为

next

的变量。

function(req, res, next){// 三个参数:req, res, next
  console.log('我是一个中间件')next()}

中间件的功能包括:

  • 执行任何代码。
  • 修改请求和响应对象。
  • 终结请求-响应循环。
  • 调用堆栈中的下一个中间件。

如果当前中间件没有终结请求-响应循环,则必须调用

next()

方法将控制权交给下一个中间件,否则请求就会挂起。

上面我们在

app

上挂载的路由处理函数就类似于中间件,关于

express

中间件的更多内容我会在之后的文章里详细讲解,敬请期待!

🔼 结语

本篇在原生

Node

开发的问题上引入了

express

这个框架,并简单对

express

的使用进行了讲解,博主的Node.js从入门到精通专栏正在持续更新中,关注博主订阅专栏学习

Node

不迷路!

如果本篇文章对你有所帮助,还请客官一件四连!❤️

在这里插入图片描述

标签: node.js express 前端

本文转载自: https://blog.csdn.net/m0_51969330/article/details/126894001
版权归原作者 海底烧烤店ai 所有, 如有侵权,请联系我们删除。

“Node.js | express 框架开篇”的评论:

还没有评论