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

相关推荐
金融数据出海2 分钟前
黄金、碳排放期货市场API接口文档
java·开发语言·spring boot·后端·金融·区块链
豌豆花下猫3 分钟前
Python 潮流周刊#101:Rust 开发的 Python 类型检查工具(摘要)
后端·python·ai
小白上线*^_^*42 分钟前
Vue——Axios
前端·javascript·vue.js
gxn_mmf1 小时前
典籍知识问答模块AI问答功能feedbackBug修改+添加对话名称修改功能
前端·后端·bug
sunbyte1 小时前
Three.js + React 实战系列 - 客户评价区细解教程 Clients 组件✨(回答式评价 + 评分星级)
开发语言·javascript·react.js
marvindev2 小时前
提bug测试专用
开发语言·javascript·bug
向哆哆2 小时前
Spring Boot快速开发:从零开始搭建一个企业级应用
java·spring boot·后端
老猿阿浪3 小时前
JavaScript性能优化:从青铜到王者的进阶之路
开发语言·javascript·性能优化
[email protected]3 小时前
ASP.NET Core 中实现 Markdown 渲染中间件
后端·中间件·asp.net·.netcore
界面开发小八哥3 小时前
DevExtreme JS & ASP.NET Core v25.1新功能预览 - 全新的Stepper组件
javascript·asp.net·界面控件·devexpress·ui开发·devextreme