前言
更多详情,请访问个人 我的博客。node
什么是Node.js
NodeJS官网上的介绍:
Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.git
- 它是一个Javascript运行环境
- 依赖于Chrome V8引擎进行代码解释
- 事件驱动
- 非阻塞I/O(NodeJS遇到I/O事件会建立一个线程去执行,而后主线程会继续往下执行的)
- 轻量、可伸缩,适于实时数据交互应用
- 单进程,单线程
Node.js的优缺点
NodeJS适合运用在高并发、I/O密集、少许业务逻辑的场景(高并发、聊天、实时消息推送)
- 优势:
-
高并发(最重要的优势)github
NodeJs更改链接到服务器的方式,每一个链接发射(emit)一个在NodeJS引擎进程中运行的事件(Event),放进事件队列当中,而不是为每一个链接生成一个新的OS线程(并为其分配一些配套内存)npm
-
适合I/O密集型应用bash
-
- 缺点:
-
不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:因为JavaScript单线程的缘由,若是有长时间运行的计算(好比大循 环),将会致使CPU时间片不能释放,使得后续I/O没法发起;服务器
解决方案:分解大型运算任务为多个小任务,使得运算可以适时释放,不阻塞I/O调用的发起。并发
-
只支持单核CPU,不能充分利用CPU;app
-
可靠性低,一旦代码某个环节崩溃,整个系统都崩溃(缘由:单进程,单线程);负载均衡
解决方案:高并发
- Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;
- 开多个进程监听同一个端口,使用cluster模块。
-
Debug不方便,错误没有stack trace。
-
Node.js的安装
- 访问 Node.js 下载地址:https://nodejs.org/zh-cn/ ,下载最新版本。
- 双击刚才下载文件,按照步骤默认安装。
Node.js和npm安装完成。
- 安装完成后打开终端,输入
npm -v
node -v
复制代码
两个命令,以下图出现版本信息,说明安装成功。