初识Node.js

本文介绍了Node.js的基础概念及特点,包括其基于Chrome V8引擎的JavaScript运行环境、异步事件驱动机制、非阻塞I/O操作以及单线程模型。此外,还详细列举了Node.js提供的API模块,如文件系统、网络通信、加密等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初识Node.js

Node.js简介

Node 定义

Node.js是一个建立在Chrome v8 引擎上的javascript运行时环境

Node 特点

异步事件驱动

node.js使用回调函数的方式来处理阻塞事件,node.js维护一个线程池,当遇到阻塞事件时,就从线程池中取出一个线程来执行阻塞事件,
然后执行回调函数,线程归还线程池。
非阻塞IO
单线程
可以通过 child_process.fork(modulePath[, args][, options]) API 实现多个线程

HTTP 在Node.js中是一等公民,Node.js非常适合Web应用

Node 架构


V8

Google开源的高性能javascript引擎,用作解释和执行javascript

libuv

高性能的事件驱动程序库,对Windows和Unix的一些底层平台特性进行了封装

C/C++组件库(c-ares http parser Open SSL Zlib等)

提供了对系统底层访问的功能

Node.js API

Node.js 提供使用的API

Node.js Bindings

胶水代码,将c/c++类库接口暴露给javascript

C/C++ Addons

动态链接对象,用于在Node.js和javascript以及C/C++之间提供接口

windows下Node安装目录结构


Node安装目录

npm modules目录

Node API概括(v6.10.2)

Assertion Testing
断言测试
Buffer
操作二进制流

C/C++ Addons


动态链接对象,用于在Node.js和javascript以及C/C++之间提供接口

Child Processes


child_process模块提供了以与popen(3)相似但不完全相同的方式生成子进程的功能。 该功能主要由child_process.spawn()函数提供


Cluster


Node.js的单个实例在单个线程中运行。 为了利用多核系统,用户有时会想要启动一个Node.js进程的集群来处理负载。

Cluster 模块允许您轻松创建所有共享服务器端口的子进程


Command Line Options


Node.js配有各种CLI选项。 这些选项会公开内置调试,执行脚本的多种方式以及其他有用的运行时选项。


Console


控制台模块提供了一个简单的调试控制台,类似于Web浏览器提供的JavaScript控制台机制


Crypto


加密模块提供加密功能,其包括用于OpenSSL的哈希,HMAC,加密,解密,签名和验证功能的一组包装器。


Debugger


Node.js包括可通过基于TCP协议和内置调试客户端访问的进程外调试实用程序。 要使用它,启动带有调试参数的Node.js,后跟脚本的路径进行调试; 将显示提示,指示调试器成功启动


DNS


使用底层操作系统设施执行名称解析的功能


Domain


模块将被弃用。一旦替换API已经完成,该模块将被完全弃用。

Errors


用作错误处理

Events


Node.js事件API


File System


文件I/OAPI,由在标准POSIX功能上的简单包装器提供


Globals


所有模块都提供这些对象。 这些对象中的一些实际上并不在全局范围内,而在模块范围内


HTTP


Node.js Http接口,支持很多传统协议


HTTPS


HTTPS是TLS/SSL上的HTTP协议,在Node.js中单独使用一个模块来实现该协议


Modules


Node.js的简单模块加载系统


Net


异步网络包装器,用于实现服务端和客户端的网络通信的功能


OS


OS模块提供了一些与操作系统相关的方法


Path


提供文件或者路径处理的方法


Process


提供Node.js的进程处理以及进程信息获取等API,Process是全局的,不需要使用require()加载


Punycode


将被废弃,不建议使用


Query Strings


用于提供格式化和解析URL字符串的API


Readline


readline模块提供了从Readable流读取数据的接口


REPL


repl模块提供Read-Eval-Print-Loop(REPL)实现,该实现既可以作为独立程序使用,也可以包含在其他应用程序中


Stream


Stream 模块用于实现数据流处理的抽象接口,它提供了一个API,可以轻松构建流处理对象


String Decoder


提供API将buffer对象编码成字符串


Timers


定时器


TLS/SSL


tls模块提供了构建在OPENSSL上的传输层安全协议(TLS)和和安全套接层协议(SSL)


TTY


tty模块提供了tty.ReadStream和tty.WriteStream类


UDP/Datagram


dgram模块提供UDP数据报套接字的实现


URL


提供URL处理的API


Utilities


主要提供内部程序使用的基本方法,但是也可以被外部访问


V8


v8模块公开了特定于Node.js二进制内置的V8版本的API


VM


vm模块提供用于在V8虚拟机上下文中编译和运行代码的API


ZLIB


zlib模块提供使用Gzip和Deflate / Inflate等形式压缩功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值