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

相关推荐
Anlici3 分钟前
连载小说大学生课设 需求&架构
前端·javascript·后端
我命由我123459 分钟前
Derby - Derby 服务器(Derby 概述、Derby 服务器下载与启动、Derby 连接数据库与创建数据表、Derby 数据库操作)
java·运维·服务器·数据库·后端·java-ee·后端框架
i源37 分钟前
Java语言处理Js文件内容格式化
java·javascript
码事漫谈1 小时前
调试的艺术:从崩溃到洞察的全面指南
后端
码事漫谈1 小时前
智驾“请抬脚”提示感悟 - 当工程师思维遇见用户思维
后端
W.Buffer1 小时前
MyBatis 源码深度解析:从 Spring Boot 实战到底层原理
spring boot·后端·mybatis
“负拾捌”1 小时前
基于NodeJs实现一个MCP客户端(会话模式和无会话模式)
javascript·ai·node.js·大模型·mcp
蒜香拿铁1 小时前
Angular【基础语法】
前端·javascript·angular.js
元直数字电路验证2 小时前
ASP.NET Core Web APP(MVC)开发中无法全局配置 NuGet 包,该怎么解?
前端·javascript·ui·docker·asp.net·.net