NodeJS的基本概念
NodeJS是什么?
-
NodeJS构建在Google Chrome的V8引擎之上,是一个
独立的JavaScript运行环境
(Google Chrome的V8引擎是目前公认的解析执行JavaScript代码最快的) -
NodeJS这个JavaScript执行环境中为JavaScript提供一些服务器级别的API操作(例如文件读写、网络服务的构建、网络通信、http服务器等处理)
-
NodeJS可以完成服务器软件的功能,不需要php等传统的服务器语言
-
NodeJS的包管理器npm,是世界上最大的开放源代码的生态系统
-
来张图片辅助理解👀
NodeJS的特点
-
单线程:
NodeJS是单线程的,那么如何面对并发,靠的是
事件循环
-
非阻塞/异步IO模型 (input/output):
NodeJS在访问高IO操作后
不会等待
其完成,而是立即去执行其他代码,操作完成后会使用回调函数
返回,保证高效的利用当前线程的cpu不造成硬件浪费 -
事件驱动:
通过事件来驱动整个程序的进行, 由于是单线程,所以把高IO的操作就会移动到事件队列中等待,完成后通过回调函数的方式返回给线程来进行处理。这个循环处理的过程称之为—事件循环
为什么要学习NodeJS?
-
以下列举关于NodeJS的一些工具和框架:
-
nodeOS:基于node的操作系统
-
node-webkit:基于node开发的非常强大的web内核
-
express:基于node的框架
-
forever、pm2:负载均衡
-
log.io:通过浏览器可以打印各种输出的日志和报错
-
grunt、gulp、webpack:前端工程化工具
-
mochar、karma:测试的工具
-
-
学习了NodeJS,不但能辅助前端,而且能够代替后端的编程语言(php,java,C#) 即一门JS语言搞定前后端(全栈&