一、Node.js首要目标是提供一种简单的、用于建立高性能服务器及可在该服务器中运行的各类应用程序的开发工具。浏览器
二、Node.js修改了客户端到服务器端的链接方法,解决了 服务器所支持的最大同时链接用户量瓶颈的问题。由于它并不为每一个客户端建立一个新的线程,而是为每一个客户端链接触发一个在Node.js内部进行处理的事件。所以,若是使用Node.js,能够同时处理多达几万个用户的客户端链接。缓存
三、在Node.js服务器中,运行的是高性能的V8 JavaScript脚本语言,该语言是一种被V8 JavaScript引擎所解析并执行的脚本语言。该引擎并不局限于在浏览器中运行,Node.js将其转用在了服务器中。服务器
四、为了实现高性能,Node.js采用了两种机制:并发
- 非阻塞型/O机制:JavaScript只支持单线程。在处理一个事务过程当中,存在一段等待时间,在这段时间里,它能够当即处理事务后面的代码,提升程序的执行效率
- 事件环机制:在Node.js中,一个时刻只能执行一个事件回调函数,可是在执行一个事件回调函数的中途能够转而处理其余事件,而后返回继续执行原事件回调函数
五、当应用程序须要处理大量并发的输入/输出,而在向客户端发出响应以前,应用程序内部并不须要进行很是复杂的处理的时候,咱们应该考虑使用Node.js来进行该应用程序的开发。dom
六、在Node.js中是经过以模块为单位来划分全部功能,每个模块为一个JS文件,每一个模式中定义的全局变量或函数的做用范围也被限定在这个模块之中,只有使用exports对象才能将其传递到外部。在引用模块时,须要使用require函数。函数
//输出
exports.print = function(){...}
//导入
var foo = require('./for.js')
console.log(foo.print()
七、Node.js中的核心模块:工具
- assert:单元测试 添加的断言处理
- buffer:实现二进制数据的存储与转换
- child_process:实现子进程的建立与管理
- cluster:实现多进程
- console:为控制台输出信息
- crypto:实现数据的加密解密处理
- debugger:实现一个内置调试器来帮助开发者调式应用程序
- dns:实现与DNS相关的处理
- domain:实现多个I/O之间的协做处理
- events:为事件处理提供一个基础类
- fs:操做文件及文件系统
- http:实现HTTP服务器端及客户端
- https:实现HTTPS服务器端及客户端
- net:建立TCP服务器与客户端
- os:获取操做系统信息
- path:处理文件路径
- punycode:实现Punycode字符串的编码及解码
- querystring:处理HTTP请求中使用的查询字符串
- readline:读取一行标准输入流
- repl:实现REPL交互式运行环境
- stream:为流的输入/输出处理提供一个基础类
- string_decoder:实现从二进制数据到字符串数据之间的转换
- tls:使用OpenSSL来实现TLS/SSL通讯处理
- tty:获取来自于TTY终端的信息
- url:实现URL字符串的解析与格式化
- util:实现各类实用函数
- vm:为JavaScript脚本代码提供一个独立的运行环境
- zlib:实现数据的压缩及解压处理
能够直接使用require函数,并使用模块名作为参数,来引用这些模块:性能
var http = require('http');
八、Node.js中追加的类、函数、对象单元测试
能够在不引用任何模块的状况下直接使用这些类、函数、对象。开发工具
- Buffer类:为二进制数据的存储提供一个缓存区
- setTimeout函数:在指定时间到达时执行一个指定的函数
- clearTimeout函数:取消指定函数的执行
- setInterval函数:指定每隔多少时间执行一个指定的函数
- clearInterval函数:取消指定函数的执行
- require函数:加载模块
- module对象:访问模块信息
- process对象:访问进程信息