事件名 和 若干个 参数 组成,事件名是一个字符串,通常表达一个的意思,对于每个事件,EventEmitter支持多个事件监听器。...(event, listener)移除指定事件的某个监听器,监听器必须是该事件已经注册过的监听器。...它接受两个参数,第一个是事件名称,第二个是回调函数名称removeAllListeners([event])移除所有事件的所有监听器, 如果指定事件,则移除指定事件的所有监听器setMaxListeners...等,只要是支持事件响应的核心模块都是EventEmitter的子类这样做的原因有两点,如下: 1、具有某个实体功能的对象实现事件符合语义,事件的监听和发生应该是一个对象的方法 2、另外,因为JavaScript...Node.js Buffer(缓冲区) 因为JavaScript只有字符串数据类型没有二进制数据类型。但是在处理TCP流或文件流时,必须使用二进制数据。
node event.js some_event 事件触发 EventEmitter 的每个事件由一个事件名和若干个参数组成,事件名是一个字符串,通常表达一定的语义。...它接受两个参数,第一个是事件名称,第二个是回调函数名称。 var callback = function(stream) { console.log(‘someone connected!’)...包括 fs、net、 http 在内的,只要是支持事件响应的核心模块都是 EventEmitter 的子类。 为什么要这样做呢?...Node.js Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。...]][, encoding]) 参数 参数描述如下: string - 写入缓冲区的字符串。
Node.js中内置多个事件,可以引入events模块,并通过实例化EventEmitter类来绑定和监听事件。...在Node中:执行异步操作的函数将回调函数作为最后一个参数,回调函数接受错误对象作为第一个参数。 ...只要是支持事件响应的核心模块都是EventEmitter的子类。原因有二: 1.具有某个实体功能的对象实现事件符合语义,事件的监听和发生应该是一个对象的方法。...6.Node.js Buffer(缓冲区) js只有字符串数据类型,没有二进制数据类型。...length参数是写入的字节数。如果buf没有足够的空间保存整个字符串,则只会写入string的一部分,只部分解码的字符不会被写入。 返回值: 返回实际写入的大小。
未经封装的零散对象可以用exports导出,如exports.s=size,因为它只是给exports对象添加新成员,等价于给module.exports添加新成员,导入应用时不用实例化 给封装的构造函数导出时必须用...Node.js官方提供的原生模块 -querystring模块,该模块用于处理HTTP请求URL中的查询字符串 (1). qs.parse(str) 把查询字符串解析为JS对象 ?...Node.js官方提供的原生模块-url模块,该模块用于解析一个HTTP请求地址,获取其中各个不同的部分 (1). url.parse( str ) 把一个URL字符串解析为一个对象 ?...Node.js官方提供的原生模块 -Buffer缓冲区,本质是一块内存区域,用于暂存以后要用到的数据(可能是数字、字符串、二进制图片/音视频等),该区域就称为“缓存”,Buffer是global成员,使用时无须...(8). fs.statSync(path) 同步返回一个文件或目录的统计信息对象,常用于判断是文件还是文件夹 ?
Node.js中每个模块都是一个独立构造函数,解释器会为每个.js文件添加如下代码: 每个模块都可以使用自己的require()函数引入另一个模块,底层本质就是创建了指定模块的一个对象实例。...Node.js官方提供的原生模块 -querystring模块 该模块用于处理HTTP请求URL中的查询字符串。...Node.js官方提供的原生模块-url模块 该模块用于解析一个HTTP请求地址,获取其中各个不同的部分。...Node.js官方提供的原生模块 -Buffer缓冲区 本质是一块内存区域,用于暂存以后要用到的数据(可能是数字、字符串、二进制图片/音视频等),该区域就称为“缓存”,Buffer是global成员,使用时无须...Node.js官方提供的原生模块-http模块.
process 常用属性 进程命令行参数: process.argv process.argv 是一个当前执行进程折参数组,第一个参数是 node,第二个参数是当前执行的.js 文件名,之后是执行时设置的参数列表...查询字符串 querystring 模块 querystring 模块是 Node.js 中的工具模块之一,用于处理 URL 中的查询字符串,即:querystring 部分。.../circle')引用时,circle.js 必须在相同的目录下才能加载成功。 当没有'/'或'./'前缀时,所引用的模块必须是“核心模块”或是 node_modules 中的模块。...options 可以是一个对象或整数。如果没有提供 options 参数,则 IP v4 和 v6 地址都可以。如果 options 是整数,则必须是 4 或 6。...如果 options 是对象时,会包含以下两个可选参数: family:可选,IP 版本。如果提供,必须是 4 或 6。不提供则,IP v4 和 v6 地址都可以 hints:可选。
2.2 创建 Node.js 应用 1)引入 required 模块 我们使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http,实例如下: var http...repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。 main - main 字段是一个模块ID,它是一个指向你程序的主要项目。...8、Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。...第一个参数是一个字符串,如果没有 参数,只打印一个换行。...模块,http 模块主要用于搭建 HTTP 服务端和客户端,使用 HTTP 服务器或客户端功能必须调用 http 模块,代码如下: var http = require('http'); 以下是演示一个最基本的
四、Stream 模块在 Nodejs 中的位置 Stream 模块本身主要用于开发者创建新类型的流实例,对于以消费流对象为主的开发者,极少需要直接使用 Stream 模块。...使用read()方法读取数据,如果传入了 size 参数,会返回指定字节的数据,当指定的size字节不可用时,则返回 null。 不指定 size 参数,会返回内部缓冲区中的所有数据。...1.事件: 所有流都是 EventEmitter 的实例,所以不同的流也具有不同的事件,事件也就是告知外界自己自身的工作状态的方式。...Buffer (常被翻译为缓冲区)在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。...原始数据存储在 Buffer 类的实例中。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。任何数据的读写都会产生缓冲区。
平台里面每一种流对象,在类型上都属于下面这四个基本抽象类中的一个,这些类是由 stream 核心模块提供的:ReadableWritableDuplexTransform每个 stream 类的对象,...,它是一个建议参数,意思是说,你最好尊重这个参数,只推入调用方所请求的这么多字节(即 highWaterMark 配置项),当然这只是一个建议,不是强迫你必须这么做。...ReadableOptions 接收的 options 参数可能会有这样一些属性:encoding: 表示流对象按照什么样的编码标准,把缓冲区的数据转化成字符串,它的默认值是 null;objectMode...如果 chunk 是字符串,那么 encoding 参数默认是 utf8,如果 chunk 是 Buffer,那么该参数的值会为系统所忽略。...大家应该意识到,输入给我们这种 Writable 流的数据,并不是字符串或 Buffer,而应该是对象,因此这种流必须在对象模式下运作。
Node.js的文件操作 3.1 基本文件操作 Node.js的文件操作API由fs(File System)模块提供,该模块提供的函数具有异步和同步两个版本,下面只看异步对应的API。...(err, stats),stats是fs.stats对象(Stats类函数的实例),可以通过Stats类中提供的函数判断文件的相关属性。...Node.js中处理数据I/O 4.1 Buffer缓冲区 Buffer类用来在内存中创建一个专门存放二进制数据的缓冲区,也就是说,在内存中预留一定的存储空间,用来暂时保存输入或输出的数据,这样Node.js...6.2.1 HTTP模块常用API 1)http.Server对象 在Node.js中,HTTP服务器是指http.Server对象,用Node.js做的所有基于HTTP协议的系统,如网站、社交应用甚至代理服务器...2)http.IncomingMessage对象 在HTTP服务器和客户端都会创建http.IncomingMessage对象,它一般由http.Server的request事件发送,作为第一个参数传递
创建Buffer 在 6.0.0 之前的 Node.js 版本中, Buffer 实例是使用 Buffer 构造函数创建的,该函数根据提供的参数以不同方式分配返回的 Buffer newBuffer()...zlib.js zlib.js 为 Node.js 的核心库之一,其利用了缓冲区(Buffer)的功能来操作二进制数据流,提供了压缩或解压功能。...参考源代码 zlib.js 源码 加解密 在一些加解密算法中会遇到使用 Buffer,例如 crypto.createCipheriv 的第二个参数 key 为 String 或 Buffer 类型,如果是...buf.fill(value[, offset[, end]][, encoding]) value: 第一个参数为要填充的内容 offset: 偏移量,填充的起始位置 end: 结束填充 buf 的偏移量...在 HTTP 传输中传输的是二进制数据,上面例子中的 /string 接口直接返回的字符串,这时候 HTTP 在传输之前会先将字符串转换为 Buffer 类型,以二进制数据传输,通过流(Stream)的方式一点点返回到客户端
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。...因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。 在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。...[, length]][, encoding]) 参数 参数描述如下: string - 写入缓冲区的字符串。...根据 encoding 的字符编码写入 string 到 buf 中的 offset 位置。 length 参数是写入的字节数。...start - 指定开始读取的索引位置,默认为 0。 end - 结束位置,默认为缓冲区的末尾。 返回值 解码缓冲区数据并使用指定的编码返回字符串。
Node.js Buffer(缓冲区) 图片 JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。...length]][, encoding]) 参数 参数描述如下: string - 写入缓冲区的字符串。...offset 偏移量默认值是 0, encoding 编码方式默认是 utf8。 length 长度是将要写入的字符串的 bytes 大小。 返回 number 类型,表示写入了多少 8 位字节流。...注意:value 必须是一个有效的 64 位double 类型的值。 若参数 noAssert 为 true 将不会验证 value 和 offset 偏移量参数。...注意:value 必须是一个有效的 64 位double 类型的值。 若参数 noAssert 为 true 将不会验证 value 和 offset 偏移量参数。
[buffer.001] JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像 TCP 流或文件流时,必须使用到二进制数据。...因此在 Node.js 中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。 在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。...写入缓冲区 语法 写入 Node 缓冲区的语法如下所示: buf.write(string[, offset[, length]][, encoding]) 参数 参数描述如下: string - 写入缓冲区的字符串...start - 指定开始读取的索引位置,默认为 0。 end - 结束位置,默认为缓冲区的末尾。 返回值 解码缓冲区数据并使用指定的编码返回字符串。...~ 学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂! 大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』希望大家多多指教! 你来,怀揣期望,我有墨香相迎!
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。...Buffer 与字符编码 Buffer 实例一般用于表示编码字符的序列,比如 UTF-8 、 UCS2 、 Base64 、或十六进制编码的数据。...(size) Buffer.from(array): 返回一个被 array 的值初始化的新的 Buffer 实例(传入的 array 的元素只能是数字,不然就会自动被 0 覆盖) Buffer.from...写入缓冲区的字符串。...根据 encoding 的字符编码写入 string 到 buf 中的 offset 位置。 length 参数是写入的字节数。
路由小练习 12. path路径模块 13. os操作系统模块 14. Buffer二进制缓冲区 从这一节开始,我就要系统地总结Node.js的知识点了,我打算把它写成一个系列专栏。...如果你只是要查阅相关模块的用法,可以从目录索引导航到那一个模块。 1. http模块 http模块是 Node.js 网络的关键模块。...:Node.js 会创建 http.Agent 类的全局实例,以管理 HTTP 客户端连接的持久性和复用,这是 Node.js HTTP 网络的关键组成部分。...new URL( ) 传入两个参数,第一个参数是要解析的绝对或相对的输入网址。如果第一个路径是相对的,则需要 第二个参数。第二个阐述为基本的url地址。...第一个参数是当前的路径,第二个参数是新的路径。 const fs = require('fs') fs.rename('./test', '.
【导读】:Node.js 是一个开源、跨平台的,用于编写服务器和命令行的 JavaScript 运行时工具。...awesome-nodejs 是sindresorhus发起维护的 Node.js 资源列表,内容包括:命令行工具、日志、调试、HTTP、构建工具、文件系统、模板、Web 框架、流程控制、文本、图片和数据校验等...- 获取字符串的可视宽度 - 显示字符串所需的列数 cli-truncate - 在终端中将字符串截断为特定宽度 first-run - 检查是否是第一次运行该进程 blessed - 类似于 Curses...- 使散列变得简单,获取缓冲区/字符串/流/文件的哈希 dot-prop - 使用 ....- SSH 相关工具 import-lazy - 懒加载一个模块 file-type - 获得一个 Buffer 的文件类型 Bottleneck - 速率限制器,使流量控制变得容易 ow - 函数参数验证
它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。...Invalid Argument 可能是给了未知的参数,或者给的参数没有值。...ArrayBuffer 不能直接操作,而是要通过类型数组对象或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。...node的核心模块之一,几乎所有常用的node模块都继承了events模块,比如http、fs等。...对于可写流来说,write(data)时,data只能是String或Buffer类型,_write(data)调用时传进来的data都是Buffer类型。
Async 和 Await 的现代异步 JavaScript Node.js 事件触发器 搭建 HTTP 服务器 使用 Node.js 发送 HTTP 请求 在 Node.js 中使用文件描述符 Node.js...事件模块 Node.js 流 阶段六 数据库校验 MySQL 管理 创建数据库 删除数据库 选择数据库 数据类型 创建数据表 删除数据表 插入数据 查询数据 where UPDATE DELETE LIKE...缓冲区 TCP UDP EventLoop 事件循环 Vue 实现前进刷新,后退不刷新的效果 Vue 页面权限控制和登陆验证 阶段九 基础数据库术语 mysql教程 HTTP WebSocket React...context concurrent-mode Hooks Others react-fiber-root JSX 函数式组件 类式组件 对state的理解 字符串形式的ref Update和UpdateQueue...勘误及提问 如果有疑问或者发现错误,可以在相应的 issues 进行提问或勘误。 License 所有文章采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。
领取专属 10元无门槛券
手把手带您无忧上云