浅谈Express

本篇文章仅以学习的角度分析express的相关特点,其他框架也特别优秀,很多都优于express,请文明讨论!(●'◡'●)

简介

Express 是一个基于 Node.js 平台的极简和灵活的 web 开发框架。它主要用于构建 Web 应用程序和 API(应用程序编程接口)。

上面太官方了,其中的重点是基于Nodejs

Express与高并发

Express的高并发是它的一大优势(当然,后续的许多框架的并发能力是优于express的,比如Fastify、Koa等,此处仅分析express此框架)。为什么?

上面说到,Express基于Node.js

而 Node.js 采用事件驱动 和非阻塞 I/O 模型 。这种模型使得服务器在处理 I/O 操作(如文件读写、数据库查询等)时,不会阻塞主线程

问题来了:不阻塞主线程,难道Node.js是多线程的?

结论是:Node.js是单线程的 ,Node.js是单线程的 ,Node.js是单线程的!

那为啥上面说到不阻塞主线程??

主线程 外是不是还有"副线程"啊

不是这样的,下面的总结很重要,建议全文背诵:

总结-单线程的Node.js

  1. Node.js 是单线程的:所有 JavaScript 代码(包括用户代码和 Node.js 核心模块中的 JavaScript 部分)都在主线程中运行。
  2. Node.js 通过非阻塞 I/O 和事件循环,使得 Node.js 的主线程不会被 I/O 操作阻塞,从而能够高效地处理高并发任务。也就是说,当Node.js要读一个一亿个字的txt文本文件,Node.js 会将这个任务交给底层的异步 I/O 系统 (具体指"操作系统提供的异步 I/O 接口"。在 Windows 系统中,操作系统提供的异步 I/O 接口主要通过 I/O 完成端口(IOCP) 和 重叠 I/O(Overlapped I/O) 来实现。这些机制使得 Node.js 能够高效地处理异步操作)来处理。(我们作为开发者大部分情况下不需要去了解如此底层的东西,只需要知道到达这一层级,属于操作系统层面的内容。我们重点掌握Node.js提供的异步API即可------如文件模块fs、timers等等)主线程不会等待文件读取完成,而是继续执行后续的代码。一旦文件读取完成,事件循环会触发一个回调函数来处理读取到的数据,从而避免了主线程被长时间的 I/O 操作阻塞。

最后

如果你忘记了前面的全部内容,问题不大,只需记住:Node.js是单线程的!!

相关推荐
架构技术专栏6 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
码事漫谈7 小时前
你让AI干的活,它可能只干了十分之一——而你根本看不出来
后端
Wx-bishekaifayuan7 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
人工智能·spring boot·后端·python·课程设计·express·旅游
Wx-bishekaifayuan8 小时前
springboot汉中旅游服务平台41442-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
WeiXin_DZbishe8 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
刘发财8 小时前
前端如何生成10000页PDF文件?
前端·javascript·开源
WeiXin_DZbishe8 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计
A接拉起0079 小时前
2026 年 JavaScript 开发者需要了解的知识
前端·javascript·后端
_馒头9 小时前
pixiJs游戏开发实践 - 跳棋小游戏
javascript·vue.js
Bazingga9 小时前
RAG评测体系保姆级教程:生产级实践指南
后端