Node之概述
Node是一个运行环境,可以像浏览器一样运行js代码。运行在 Node 的js叫做 NodeJS 。
浏览器中的js限制了js很多功能的实现。实际上,在浏览器中分为两个部分,一个是 EcmaScript ,另一个是 WebApi 。前一个制定了语言标准,后面浏览器又增加了例如 bom,dom,ajax 等功能来更方便地操作浏览器窗口和页面。
但也存在着许多问题,例如:文件读写,读文件很有限,写文件几乎不可能。跨域问题:实际上,是因为浏览器的同源策略导致的。
Node 提供了 EcmaScript 和 NodeApi ,它可以用来做几乎所有的事情,比如监听请求,读取请求,保存文件等。Node 和浏览器是直接建立在操作系统之上,理论上它可以做任何事,可以通过调用接口控制操作系统去实现功能。
Node 是一个单线程异步的模式,可以这么进行理解,实际上,Node 内部也是多线程的。具备快速io的能力,但不擅长并行运算。同时也避免了线程之间的竞争。
Node 有两种结构。一种是用户通过客户端直接发送请求到 Node 服务器,Node 服务器和数据库交互。这种结构一般是在微型站点上。第二种是将 Node 服务器当作一个中间层,它可以处理简单的数据,并且有一个轻量级的数据库,主要的处理交给后端服务器。这种结构非常常见,用于规模化的站点中。
使用第二种结构可以利用 Node 快速接受大量请求的特点,不处理业务逻辑,只是做转发请求的操作。只是做一些信息记录,静态资源加载,缓存操作之类。