一、Node.js简介
Node.js是一个开源和跨平台的JavaScript运行时环境。它几乎是任何类型项目的流行工具!
Node.js在浏览器之外运行V8 JavaScript引擎(Google Chrome的内核)。这使得Node.js的性能非常好。
Node.js应用程序在单个程序中运行,无需为每个请求创建新的线程。Node.js在其标准库中提供了一组异步的I/O原语,以防JavaScript代码阻塞,通常,Node.js中的库是使用非阻塞范式编写的,使得阻塞行为成为异常而不是常态。
Node.js具有独特的优势,因为数百万为浏览器编写的JavaScript的前端开发者现在无需学习完全不同的语言,就可以编写除客户端代码之外的服务器端代码。
①浏览器中的js
web api提高了操作浏览器窗口和页面的功能。例如:BOM操作,DOM操作,AJAX这些功能有局限性。例如:跨域问题,文件读写
②Node中的js
nodeAPI几乎提供了所有能做的事情
③ Node中的JS对比浏览器中的JS
浏览器提供了有限的能力,JS只能使用浏览器提供的功能做有限的操作
Node提供了完整的控制计算机的能力,NodeJS几乎可以通过Node提供的接口,实现对整个操作系统的控制。
二、Node可以做什么
①开发桌面应用程序
例如QQ、微信... 经常用的VScode就是用node开发的
②开发服务器应用程序
结构1:微型结构
Node服务器要完成请求的处理、响应和数据交互、关注业务逻辑
结构2:大型结构
Node服务器
不做任何与业务逻辑有关的事情。绝大部分时候,只是简单的转发请求。但可能会有一些额外的功能
1.简单的信息记录:请求日志、用户偏好、广告信息
2.静态资源托管
3.缓存
后端服务器
处理大型的业务逻辑
三、为什么要学习NodeJS
1..JS开发省时,省力
2. 因为nodeJS是单线程,没有线程切换的损耗,没有线程之间的竞争。
3. IO处理非常快
4. node不适合处理复杂运算,例如java可以开多线程进行并行运算
其他服务端语言(例如java,.net)能做的事情,node全部都能做。语言没有好坏之分,只有场景的适合。
node开发者就是为了寻找快速的IO处理的语言,所以选择了JavaScript
- 关注我,后面继续发表更多底层知识哦!