当前位置: 首页 > 后端技术 > Node.js

Node.jsAPI参考文档(目录)

时间:2023-04-03 13:52:03 Node.js

Node.jsv11.5.0API参考文档Node.js?是一个基于Chrome的V8JavaScript引擎构建的JavaScript运行时。关于文档使用和示例断言测试稳定性:2-稳定的断言模块提供了一组简单的断言测试,可用于测试不变量。存在严格模式和遗留模式,但只推荐使用严格模式。有关使用的相等比较的更多信息,请参阅MDN的相等比较和身份指南。assert.AssertionError类严格模式遗留模式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]]])弃用断言。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)Asynchook稳定性:1-实验性async_hooks模块提供一个API来注册回调,跟踪在Node.js应用程序中创建的异步资源的生命周期,可以使用以下方法访问:constasync_hooks=require('async_hooks');异步资源表示具有关联回调的对象,该回调可以被多次调用,例如,在net.createServer()中的“连接”事件上,或者在fs.open()中仅调用一次。资源也可以在调用回调之前关闭,AsyncHook不会明确区分这些不同的情况,而是将它们表示为资源的抽象。如果使用Worker,每个线程都有一个独立的async_hooks接口,每个线程都会使用一组新的asyncID。公共APIPromise执行跟踪JavaScript嵌入器APIBuffer稳定性:2-稳定在引入TypedArray之前,JavaScript语言没有读取或操作二进制数据流的机制,Buffer类作为Node.jsAPI的一部分被引入用于TCP在流、文件系统操作和其他上下文等上下文中与八位字节流交互。Buffer类的实例类似于整数数组,但对应于V8堆外的固定大小原始内存分配。Buffer的大小是在创建时确定的,不能更改。Buffer类在全局范围内,因此您不太可能需要使用require('buffer').Buffer。//创建一个长度为10的零填充缓冲区.constbuf1=Buffer.alloc(10);//创建一个长度为10的缓冲区,填充为0x1.constbuf2=Buffer.alloc(10,1);//创建长度为10的未初始化缓冲区。//这比调用Buffer.alloc()更快,但返回的//Buffer实例可能包含需要使用fill()或write()//覆盖的旧数据。constbuf3=Buffer.allocUnsafe(10);//创建一个包含[0x1,0x2,0x3]的缓冲区。constbuf4=Buffer.from([1,2,3]);//创建一个包含UTF-8字节的缓冲区[0x74,0xc3,0xa9,0x73,0x74].constbuf5=Buffer.from('tést');//创建一个包含Latin-1字节的缓冲区[0x74,0xe9,0x73,0x74].constbuf6=Buffer.from('tést','latin1');Buffer.from()、Buffer.alloc()和Buffer.allocUnsafe()缓冲区和字符编码缓冲区以及TypedArray缓冲区和迭代Buffer类buffer.INSPECT_MAX_BYTESbuffer.kMaxLengthbuffer.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的简单访问,例如与文件系统、套接字、计时器和系统事件的交互。libuv还提供了类似pthread的线程抽象,可用于驱动需要超越标准事件循环的更复杂的异步扩展库。鼓励扩展库作者考虑如何通过libuv将工作卸载到非阻塞系统操作、工作线程或libuv线程的自定义使用来避免阻塞事件循环与I/O或其他时间密集型任务。在Node.js库内部,Node.js本身导出了许多扩展库可以使用的C++API——其中最重要的是node::ObjectWrap类。Node.js包括许多其他静态链接库,包括OpenSSL。这些其他库位于Node.js源代码树的deps/目录中。Node.js只是特意重新导出了libuv、OpenSSL、V8和zlib符号,并且可以通过库进行扩展。在不同的范围内使用,请参阅链接到Node.js自己的依赖项以获取更多信息。以下所有示例均可下载,并可用作扩展库的起点。HelloworldNode.jsNativeAbstractN-APIExtensionLibraryExampleC/C++Plugin-N-APIStability:2-StableN-API(在API后面的字母中发音为N)是一个用于构建原生扩展库的API,它是独立于底层JavaScript运行时(以前称为V8),并作为Node.js本身的一部分进行维护。此API将成为跨Node.js版本的应用程序二进制接口(ABI)的稳定版本。它旨在将扩展库与底层JavaScript引擎的变化隔离开来,并允许为一个主要版本编译的模块无需重新编译即可在后续的Node.js主要版本上运行,ABI稳定性指南提供了更深入的解释。扩展库是使用与C++扩展库部分中概述的相同方法/工具构建/打包的,唯一的区别是本机代码使用的API集,而不是使用V8或Node.js。功能。N-API公开的API通常用于创建和操作JavaScript值。概念和操作通常映射到ECMA262语言规范中指定的思想。该API具有以下属性:

猜你喜欢