一、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

node.js是干什么的

web api提高了操作浏览器窗口和页面的功能。例如:BOM操作,DOM操作,AJAX这些功能有局限性。例如:跨域问题,文件读写

②Node中的js

node.js是干什么的

nodeAPI几乎提供了所有能做的事情

③ Node中的JS对比浏览器中的JS

node.js是干什么的

浏览器提供了有限的能力,JS只能使用浏览器提供的功能做有限的操作

Node提供了完整的控制计算机的能力,NodeJS几乎可以通过Node提供的接口,实现对整个操作系统的控制。

二、Node可以做什么

①开发桌面应用程序

例如QQ、微信... 经常用的VScode就是用node开发的

②开发服务器应用程序

结构1:微型结构

 node.js是干什么的

 Node服务器要完成请求的处理、响应和数据交互、关注业务逻辑

结构2:大型结构

node.js是干什么的

 Node服务器

不做任何与业务逻辑有关的事情。绝大部分时候,只是简单的转发请求。但可能会有一些额外的功能

1.简单的信息记录:请求日志、用户偏好、广告信息

2.静态资源托管

3.缓存

后端服务器

处理大型的业务逻辑

三、为什么要学习NodeJS

1..JS开发省时,省力

2. 因为nodeJS是单线程,没有线程切换的损耗,没有线程之间的竞争。

3. IO处理非常快

4. node不适合处理复杂运算,例如java可以开多线程进行并行运算

其他服务端语言(例如java,.net)能做的事情,node全部都能做。语言没有好坏之分,只有场景的适合。

node开发者就是为了寻找快速的IO处理的语言,所以选择了JavaScript

发表回复