浅谈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是单线程的!!

相关推荐
Enti7c9 分钟前
Cookie可以存哪些指?
javascript
紧跟先前的步伐9 分钟前
【Golang】第十一弹------反射
开发语言·后端·golang
三木SanMu35 分钟前
LangChain基础系列之LLM接口详解:从原理到实战的全攻略
后端
失业写写八股文37 分钟前
Spring基础:Spring特性与优势
后端·spring
ElasticPDF_新国产PDF编辑器40 分钟前
React 项目 PDF 批注插件库在线版 API 示例教程
javascript
不是鱼41 分钟前
XSS 和 CSRF 为什么值得你的关注?
前端·javascript
Asthenia041242 分钟前
Java 排序深度解析:升序、降序与实现方式的抉择
后端
顺遂时光1 小时前
微信小程序——解构赋值与普通赋值
前端·javascript·vue.js
qq_447663051 小时前
Spring的事务处理
java·后端·spring
bobz9651 小时前
qemu 启动 debian 虚拟机
后端