Node
1. 定义:
一个让 js 运行在后台的服务开发平台
与 PHP、JSP 等相比,Node.js 跳过了 Apache、Naginx、IIS 等 HTTP 服务器软件,它自己不用建设在任何服务器软件之上。Node.js 的许多设计理念与经典架构(LAMP)有着很大的不同,可以提供强大的伸缩能力。
nodejs 是花最小的硬件成本,追求更高的并发,更高的处理性能
2. 特点:
1. 单线程:所有客户端请求的连接 都使用一个线程来处理.操作系统不会为新线程创建/销毁内容空间占用额外资源;
2. 非阻塞 I/O:I/O 操作不会阻塞程序的运行.
* 在阻塞模式下,一个线程只能处理一项任务,想要提高吞吐量必须通过多线程.
* 而非阻塞模式下,一个线程永远在执行计算操作,这个线程的利用率永远是满载的.
3. 事件驱动:客户端 请求建立连接,提交数据等行为,就会触发 相应的事件.
* 在 Node 中,在一个时刻,只能执行 一个事件回调函数,但是在执行 一个事件回调函数的中途,可以转而处理其他事件(比如,又有新用户连接了),然后返回继续执行原事件的回调函数,这种处理机制,称为“事件环”机制.
3. node 的优缺和使用场景:
1. 学习 js 后,不用在单独学习一门新语言,降低学习的门槛,一次读取数据较小。
2. nodejs 善于 I/O,不善于计算
3. 处理高并发
4. 服务器推送
缺点:
线程单一,所以一旦崩溃,整个服务就挂了
使用场景:
nodejs 不能完全替代传统的后端语言,但在某些方面优于传统
当应用程序需要处理大量并发的 I/O 操作,而在发出响应之前,应用程序内部,并不需要进行非常复杂的计算处理的时候,node.js 非常适合。
node.js 也非常适合与 web——socket 配合,开发浪连接实时交互应用程序。
例如: 考试系统、聊天室、图文直播、用户表单收集、提供 json 的 API
nodejs 模块:
在 Node.js 中,不可能用一个 js 文件去写全部的业务,肯定要有 MVC.
它以模块为单位 划分所有功能,并且提供了一个 完整的模块加载机制,我们可以将应用程序 划分为各个不同的部分.需要用到什么模块,就可以使用什么模块,可以使用 require(‘‘)来引入使用。
较为常用的模块有:
HTTP 模块、URL 模块、文件系统等
nodejs 变量/函数:
js 文件中的变量、函数都只能在这个文件内部使用。其他文件中中要想使用必须在本文件使用 exports = 构造函数名 的方式 向外输出一个类,其他文件用 require 导入引用执行这个文件。
V8 引擎说明:
V8 JavaScript 引擎是 Google 用于其 Chrome 浏览器的底层 JavaScript 引擎。Google 使用 V8 创建了一个用 C++编写的超快解释器,该解释器拥有另一个独特特征:您可以下载该引擎并将其嵌入任何应用程序。V8 JavaScript 引擎并不仅限于在一个浏览器中运行。因此,Node.js 实际上会使用 Google 编写的 V8 JavaScript 引擎,并将其重建为可在服务器上使用。
本文由 倪建成学习时 编辑,只是普通笔记。若是对你有用,可以自行转载
最后编辑时间为:2019-07-22 00:00:00