Node.js API参考文档(目录)

2018-11-10 admin

断言测试

稳定性:2 - 稳定

assert模块提供了一组简单的断言测试,可用于测试不变量。

存在strictlegacy模式,但建议仅使用严格模式。

有关使用的相等比较的更多信息,请参阅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]]]) 弃用
  • 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自己的依赖项。

以下所有示例均可供下载,可用作扩展库的起点。

原文链接:https://segmentfault.com/a/1190000016968555

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-45020.html

文章标题:Node.js API参考文档(目录)

相关文章
html5 参考手册chm
下载地址:html5参考手册chm 友情提示:如果打开空白,在手册上右键属性解除锁定即可。 ...
2015-11-12
Node.js将向移动端扩展
如果你还没有听过Node.js,那么现在就可以了解一下! 目前,来自200多个国家的数以万计的组织在使用Node.js,在Node.js的网站上,每月都有超过200万次下载。但版本发布缓慢使开发人员日益不满,网上出现了创建Node.js分支...
2015-11-12
Node.js v0.11.16 开发版发布
Node.js v0.11.16 开发版发布了,改进记录包括: openssl: Upgrade to 1.0.1l npm: Upgrade to 2.3.0 url: revert support of path for url.fo...
2015-11-12
vue-awesome-swiper的使用以及API整理
一、先说一个看关于vue-awesome-swiper的一个坑 vue项目的package.json中显示的<span style=“color: orange;”>“vue-awesome-swiper”: “^2.5.4”&...
2018-04-26
Node.js深受欢迎的六大原因
Node.js鏄�涓€绉嶅悗璧风殑浼樼�€鏈嶅姟鍣ㄧ紪绋嬭��瑷€锛屽畠鐢ㄦ潵鏋勫缓鍜岃繍琛學eb搴旂敤锛岃繖鍜孉SP.NET锛孯uby聽on聽Rails鎴朣pring妗嗘灦鍋氱殑宸ヤ綔鏄�绫讳技鐨勩€傚畠浣跨敤JavaScript浣滀负涓...
2015-11-11
Node.js实现Excel转JSON
一直在做一个关于网上选课的系统,选用了时下比较流行的node.js。今天在想怎么把学生或者老师的信息导入进去,涉及数量比较多一点,我手边又正好有一部分excel的表格。就想把excel转成json然后倒入到mongodb中去。 搜了下网上的...
2017-03-23
PHP 和 Node.js 的角摔
在最近 SitePoint 的 PHP vs Node.js Smackdown 一文中,Craig Buckler 对两种语言就如何应对一系列的10个挑战进行了比较来决定哪一个总体上更佳。 Craig 在书中讲到,这些比较总是有些矛盾。作...
2015-12-25
利用n 升级工具升级Node.js版本及在mac环境下的坑
一、利用n 升级Node.js 最近在用NPM安装一个nodejs工具时发现,我的nodejs的版本有些旧了。这不是大问题,只要升级就可以了,当然,重新从nodejs.org最新版本是一种方法,但我想应该有更简单的方法,那就是使用 n 这个...
2017-03-17
css3.0参考手册
下载地址:css3.0参考手册 友情提示:如果打开空白,在手册上右键属性解除锁定即可。 ...
2015-11-12
node.js读取文件到字符串的方法
本文实例讲述了node.js读取文件到字符串的方法。分享给大家供大家参考。具体分析如下: Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始。比较独特的是,Node.js会假设你是在POSIX环境...
2017-03-27
回到顶部