Node.js简介Node定义Node.js是一个基于Chromev8引擎构建的javascript运行环境Node特性异步事件驱动node.js使用回调函数处理阻塞事件,node.js维护一个线程池。当遇到阻塞事件时,从线程池中取出一个线程执行阻塞事件,然后执行回调函数,将线程返回线程池。非阻塞IO单线程可以通过child_process.fork(modulePath,args)API实现多线程HTTP在Node.js中是一等公民,Node.js非常适合web应用Node架构V8Google开源的高性能javascript引擎,用作javascriptlibuv高性能事件驱动程序库的解释和执行,它封装了Windows和Unix的一些底层平台特性。C/C++组件库(c-areshttpparserOpenSSLZlib等)提供了访问底层系统Node的功能。jsAPINode.js提供APINode.jsBindings胶水代码,用于暴露c/c++类库接口给javascriptC/C++Addons动态链接对象,用于提供windows下Node.js与javascript和C/C++Node之间的接口安装目录结构Node安装目录npmmodules目录NodeAPI总结(v6.10.2)AssertionTesting断言测试Buffer操作二进制流C/C++Addons动态链接对象,用于提供Node.js与javascript和C/C++Child进程的接口child_process模块提供了以与popen(3)类似但不完全相同的方式生成子进程的功能。该功能主要由child_process.spawn()函数提供,其中ClusterNode.js的单个实例在单个线程中运行。为了利用多核系统,用户有时希望启动一个Node.js进程集群来处理负载。Cluster模块允许您轻松创建所有共享服务器端口的子进程。命令行选项Node.js带有各种CLI选项。这些选项公开了内置调试、执行脚本的各种方式以及其他有用的运行时选项。Console控制台模块提供了一个简单的调试控制台,类似于Web浏览器提供的JavaScript控制台机制。Crypto加密模块提供加密功能,包括hash、HMAC、OpenSSL的加密、解密、签名和验证功能。的一组包装器。DebuggerNode.js包括可通过基于TCP的协议和内置调试客户端访问的进程外调试实用程序。要使用它,请使用debug参数启动Node.js,后跟要调试的脚本的路径;将显示一条提示,指示调试器已成功启动DNS。域模块使用底层操作系统工具执行名称解析的功能将被弃用。替换API完成后,此模块将被完全弃用。错误用于错误处理EventsNode.jsEventsAPIFile系统文件I/OAPI由标准POSIX函数上的简单包装器提供Globals所有模块都提供这些对象。其中一些对象实际上并不在全局范围内,而是在模块范围内HTTPNode.jsHttp接口,支持很多传统协议.js是一个简单的模块加载系统Net异步网络包装器,用于实现服务端和客户端网络通信的功能js进程处理和进程信息获取等API,Process是全局的,不需要使用require()加载Punycode会被丢弃,不建议使用QueryStrings提供格式化和解析URL字符串的API。Readlinereadline模块提供了从Readable流读取数据的接口REPLrepl模块提供了Read-Eval-Print-Loop(REPL)的实现,可以作为独立程序使用,也可以包含在其他应用程序中。StreamStream模块用于实现数据流处理的抽象接口。它提供了一个API来轻松构建流处理对象。StringDecoder提供了一个API来将缓冲区对象编码为字符串。TimerstimerTLS/SSLtls模块提供建立在OPENSSL(SSL)之上的传输层安全(TLS)和安全套接字层协议TTYtty模块提供tty.ReadStream和tty.WriteStream类UDP/Datagramdgram模块提供UDP数据报套接字的实现URL提供URL处理APIUtilities主要提供内部程序使用的基本方法,但也可以被外部访问V8v8模块暴露了一个API特定于V8版本的Node.js二进制内置VMvm模块提供了一个API用于在V8中编译和运行代码虚拟机上下文ZLIBzlib模块使用Gzip和Deflate/Inflate等形式提供压缩
