Node.js API参考文档(目录)
Node.js v11.5.0 API参考文档
Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时。
- 关于文档
- 用法和示例
断言测试
稳定性:2 - 稳定
assert
模块提供了一组简单的断言测试,可用于测试不变量。
存在strict
和legacy
模式,但建议仅使用strict
模式。
有关使用的相等比较的更多信息,请参阅MDN关于相等比较和相同性的指南。
- assert.AssertionError类
- strict模式
- legacy模式
- assert(value[, message])
- assert.deepEqual(actual, expected[, message])
- assert.deepStrictEqual(actual, expected[, message])
- assert.doesNotReject(asyncFn, error)
- assert.doesNotThrow(fn, error)
- assert.equal(actual, expected[, message])
- assert.fail([message])
- assert.fail(actual, expected[, message[, operator[, stackStartFn]]])
弃用
- assert.ifError(value)
- assert.notDeepEqual(actual, expected[, message])
- assert.notDeepStrictEqual(actual, expected[, message])
- assert.notEqual(actual, expected[, message])
- assert.notStrictEqual(actual, expected[, message])
- assert.ok(value[, message])
- assert.rejects(asyncFn, error)
- assert.strictEqual(actual, expected[, message])
- assert.throws(fn, error)
异步钩子
稳定性:1 - 实验
async_hooks
模块提供了一个API来注册回调,跟踪Node.js应用程序内部创建的异步资源的生命周期,它可以使用以下方式访问:
const async_hooks = require('async_hooks');
异步资源表示具有关联回调的对象,可以多次调用此回调,例如,net.createServer()
中的'connection'
事件,或者只是fs.open()
中的一次。在调用回调之前,也可以关闭资源,AsyncHook
没有明确区分这些不同的情况,但会将它们表示为资源的抽象概念。
如果使用Worker
,则每个线程都有一个独立的async_hooks
接口,每个线程将使用一组新的异步ID。
- Public API
- Promise执行跟踪
- JavaScript Embedder API
Buffer
稳定性:2 - 稳定
在引入TypedArray之前,JavaScript语言没有用于读取或操作二进制数据流的机制,Buffer
类是作为Node.js API的一部分引入的,用于在TCP流、文件系统操作和其他上下文中与八位字节流进行交互。
Buffer
类的实例类似于整数数组,但对应于V8堆外部的固定大小的原始内存分配,Buffer
的大小在创建时建立,无法更改。
Buffer
类在全局作用域内,因此不太可能需要使用require('buffer').Buffer
。
// Creates a zero-filled Buffer of length 10.
const buf1 = Buffer.alloc(10);// Creates a Buffer of length 10, filled with 0x1.
const buf2 = Buffer.alloc(10, 1);// Creates an uninitialized buffer of length 10.
// This is faster than calling Buffer.alloc() but the returned
// Buffer instance might contain old data that needs to be
// overwritten using either fill() or write().
const buf3 = Buffer.allocUnsafe(10);// Creates a Buffer containing [0x1, 0x2, 0x3].
const buf4 = Buffer.from([1, 2, 3]);// Creates a Buffer containing UTF-8 bytes [0x74, 0xc3, 0xa9, 0x73, 0x74].
const buf5 = Buffer.from('tést');// Creates a Buffer containing Latin-1 bytes [0x74, 0xe9, 0x73, 0x74].
const buf6 = Buffer.from('tést', 'latin1');
- Buffer.from(),Buffer.alloc()和Buffer.allocUnsafe()
- 缓冲区和字符编码
- 缓冲区和TypedArray
- 缓冲区和迭代
- Buffer类
- buffer.INSPECT_MAX_BYTES
- buffer.kMaxLength
- buffer.transcode(source, fromEnc, toEnc)
- SlowBuffer类
弃用
- Buffer常量
C++扩展库
Node.js扩展库是动态链接的共享对象,用C++ 编写,可以使用require()
函数加载到Node.js中,就像它们是普通的Node.js模块一样使用,它们主要用于提供Node.js中运行的JavaScript与C/C++库之间的接口。
目前,实现扩展库的方法相当复杂,涉及多个组件和API的知识:
- V8:Node.js目前用来提供JavaScript实现的C++库,V8提供了创建对象、调用函数等的机制,V8的API大多记录在
v8.h
头文件(Node.js源代码树中的deps/v8/include/v8.h
)中,该文件也可在线获取。 - libuv:实现Node.js事件循环的C库,它工作线程和平台的所有异步行为,它还可以作为跨平台的抽象库,为所有主要操作系统提供简单的类似POSIX访问,以及许多常见的系统任务,例如与文件系统、sockets、定时器和系统事件的交互。libuv还提供类似并行线程的线程抽象,可用于驱动需要超越标准事件循环的更复杂的异步扩展库。鼓励扩展库作者考虑如何通过libuv将工作卸载到非阻塞系统操作,工作线程或libuv线程的自定义使用来避免使用I/O或其他时间密集型任务阻止事件循环。
- 内部Node.js库,Node.js本身导出了扩展库可以使用的许多C++ API - 其中最重要的是
node::ObjectWrap
类。 - Node.js包括许多其他静态链接库,包括OpenSSL,这些其他库位于Node.js源代码树的
deps/
目录中,Node.js只故意重新导出libuv、OpenSSL、V8和zlib symbols,并且可以通过扩展库在不同的范围内使用,有关其他信息,请参阅链接到Node.js自己的依赖项。
以下所有示例均可供下载,可用作扩展库的起点。
- Hello world
- Node.js原生抽象
- N-API
- 扩展库示例
C/C++插件 - N-API
稳定性:2 - 稳定
N-API(在字母中发音为N,后跟API)是用于构建原生扩展库的API,它独立于底层JavaScript运行时(前V8),并作为Node.js本身的一部分进行维护,此API将是跨Node.js版本的应用程序二进制接口(ABI)稳定版,它旨在将扩展库与底层JavaScript引擎中的更改隔离开来,并允许为一个主要版本编译的模块在Node.js的后续主要版本上运行而无需重新编译,ABI稳定性指南提供了更深入的解释。
使用与C++扩展库一节中概述的相同方法/工具构建/打包扩展库,唯一的区别是原生代码使用的API集,不使用V8或Node.js原生抽象API,而是使用N-API中可用的功能。
N-API公开的API通常用于创建和操作JavaScript值,概念和操作通常映射到ECMA262语言规范中指定的想法,API具有以下属性:
Node.js API参考文档(目录)相关推荐
- Facebook 游戏开发更新文档 API 参考文档 v6.0
Facebook 游戏开发更新文档 API 参考文档 v6.0 更新日志 1.排行榜 此版本全新推出排行榜 API!提供一套强大的 API, 使得游戏可获取排行榜.查询得分 情况和设置新分数(支持分数 ...
- 使用 apiDoc 为你的Node.js API 生成文档
翻译: 疯狂的技术宅 原文:jonathas.com/documenting- 未经许可,禁止转载! 当你为其他开发人员(前端,桌面,移动等)开发 API 时,需要生成一份风格良好的文档,以便他们知道 ...
- README文档模板 含下载地址0积分 项目文档模板 springboot文档示例 readme参考文档 目录跳转 项目架构 使用说明 目录结构 等等 (含附件下载)
下载地址0积分 项目名称 在线签约(signup) (v1.1.0) 目录 项目简介 功能简述 项目架构 目录结构 使用效果 安装说明 使用说明 开发人员 版权信息 更新日志 项目简介 *-signu ...
- node.js解析word文档
最近接触了了一个简历管理的项目,需要将简历上传之后解析出里面的字段内容(如姓名.性别.教育经历.工作经历等),存入数据库中.简历的格式都是标准的格式,可参考猎聘下载下来的格式. 毫无疑问,第一个难点就 ...
- React 参考文档(基于v16.2.0) 01 : 顶层API
React 顶层API (Top-Level API) React 是整个React库的入口点,你可以将它想象成最顶层的命名空间.当使用<script>标签加载React时,这些顶层API ...
- LLVM文档目录框架(索引用)
注1:主要用于个人学习LLVM查找用,后续会继续更新 注2:加红文字可以ctrl+鼠标点击跳转到对应官方文档 注3:目前大致目录框架如下 概述 LLVM 编译器简介演示文稿 LLVM 简介 LLVM: ...
- Java API帮助文档怎么查找?
[1]打开官方帮助文档(英文):Java SE API 和文档 这里选择官方网站 打开之后,是这样婶儿的 [2]选择合适的版本:这里选择Java 8 [3]打开Java API 主页面 如何查找自己想 ...
- YUIDoc example代码高亮错误、生成API文档目录不按源文件注释顺序
1.如果发现yuidoc命令用不了,那就重装nodejs吧 昨天不知道是清扫电脑的原因,yuidoc命令用不了(命令不存在),也没有找到好的解决方法,怒重装YUIDoc也不行.最后想了想,怒重装了no ...
- 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( android 闭包块配置 | AppExtension 扩展类型参考文档 )
文章目录 一.Module 目录下 build.gradle 配置文件 1.android 闭包块配置 2.AppExtension 扩展类型参考文档 Android Plugin DSL Refer ...
最新文章
- 构建安全的 ASP.NET 网页和控件
- Label 的作用是什么,是怎么用的?
- AI教父杰弗里辛顿:AI反学习可能揭开人类梦境的奥秘
- 2019全球AI人才分布图:美国占44%,中国人才净流入
- html页面获取服务器时间,[html]定时获取服务器时间和本地时间
- Spring AOP详解一文搞懂@Aspect、@Pointcut、@Before、@Around、@After、@AfterReturning、@AfterThrowing
- ios 边录音边放_关于Android和iOS系统OneNote支持边录音边记笔记的需求和建议
- 【bzoj2820】YY的GCD 莫比乌斯反演
- 卷积神经网络结构_卷积神经网络
- [北京微软技术直通车]前端 Visual Studio Code 开发 Angular 与亿级 SQL Servern
- P1375-小猫【卡特兰数】
- Magento教程 15:Magento 批次修改产品资料
- linux 用户管理和帮助命令
- 图片 + 未知宽高 + 垂直居中
- python重复字符串n次的函数_LeetCode_Python(3)_无重复字符的最长子串
- 原生前端:input标签 number类型输入框如何清除上下加减按钮?
- 卡西欧手机计算机软件,卡西欧5800计算器手机版app
- java中cleanup的使用_【Lombok注解】@Cleanup 自动资源管理:安全无困扰地调用close方法...
- Windows 9X电脑经常出现bluescreen蓝屏怎么办?
- ~杂记(3):los_dispatch.s和startup.s的作用分析