前言
更多详情,请访问我的 个人博客。
什么是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.
- 它是一个Javascript运行环境
- 依赖于Chrome V8引擎进行代码解释
- 事件驱动
- 非阻塞I/O(NodeJS遇到I/O事件会创建一个线程去执行,然后主线程会继续往下执行的)
- 轻量、可伸缩,适于实时数据交互应用
- 单进程,单线程
Node.js的优缺点
NodeJS适合运用在高并发、I/O密集、少量业务逻辑的场景(高并发、聊天、实时消息推送)
- 优点:
-
高并发(最重要的优点)
NodeJs更改连接到服务器的方式,每个连接发射(emit)一个在NodeJS引擎进程中运行的事件(Event),放进事件队列当中,而不是为每个连接生成一个新的OS线程(并为其分配一些配套内存)
-
适合I/O密集型应用
-
- 缺点:
-
不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循 环),将会导致CPU时间片不能释放,使得后续I/O无法发起;
解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起。
-
只支持单核CPU,不能充分利用CPU;
-
可靠性低,一旦代码某个环节崩溃,整个系统都崩溃(原因:单进程,单线程);
解决方案:
- Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;
- 开多个进程监听同一个端口,使用cluster模块。
-
Debug不方便,错误没有stack trace。
-
Node.js的安装
- 访问 Node.js官网 ,下载最新版本。
- 双击刚才下载文件,按照步骤默认安装。
Node.js和npm安装完成。
image- 安装完成后打开终端,输入
npm -v
node -v
两个命令,如下图出现版本信息,说明安装成功。
image
网友评论