概述
-
nodejs并不是
JavaScript的运用,也不是编程语言,因为它使用的编程语言是javaScript,nodejs是JavaScript的
运行时环境 -
nodejs是构建在v8引擎之上的,v8引擎是由C/C++编写的,因此我们的JavaScript代码需要C/C++转换后执行
-
nodeJS使用异步I/O和事件驱动的设计理念,可以高效处理大量 并发请求,提供了非阻塞式I/O接口和事件循环机制 ,使得开发人员可以编写高性能,可扩展的应用程序,异步I/O最终都是
libuv事件循环库去实现的 -
nodeJS 使用npm作为包管理类似于Python的pip或者Java中的Maven 目前npm拥有上百万个模块。 www.npmjs.com/
-
node适合干一些I/O密集的应用,不适合cpu密集的应用,nodeJS I/O依靠libuv有很强的处理能力,而cpu因为node是单线程的原因,容易造成cpu占用率过高,如果需要做cpu密集型应用,可以使用C++插件去编写或者nodeJS提供的
cluster。(CPU密集型指的是图像的处理 或者音频处理需要大量数据结构 + 算法)
nodeJS大致架构图
nodejs应用场景
前端
Vue Angular React nuxtjs nextjs
后端
ServerLess
Web应用 express koa NestJS
RPC服务 gRPC
爬虫 Puppeteer cheerio
BFF层 网关层
及时性应用 socket.io
桌面端
electron
tauri
NWjs
移动端
weex
ionic
hybrid
React Native
基建端
webpack vite rollup gulp
less scss postCss
babel swc
inquire command shelljs
嵌入式
Ruff js
单元测试
jest vitest e2e
CICD
Jenkins docker Husky miniprogram-ci
反向代理
http-proxy Any-proxy