为什么 for await 遍历 Node.js Readable 时提前 break 会自动销毁流,这替代不了哪种显式错误处理?
为什么 for await 遍历 Node.js Readable 时提前 break 会自动销毁流,这替代不了哪种显式错误处理? 本文先给出可直接复述的结论,再用最小代码说明Node.js readable for await break destroy的工作方式、判断依据、项目边界和常见误区。
Node.js · 流与二进制面试题第 1 页,显示第 1–47 题,共找到 47 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
为什么 for await 遍历 Node.js Readable 时提前 break 会自动销毁流,这替代不了哪种显式错误处理? 本文先给出可直接复述的结论,再用最小代码说明Node.js readable for await break destroy的工作方式、判断依据、项目边界和常见误区。
解释 write 返回 false 是停止继续生产的背压信号,说明当前数据已进入写入流程、不能重写同一块,并用慢速对象流示例验证顺序、drain 等待和正常结束。
Node.js 把大文件流式转成 Base64 时按任意字节块 encode 为什么会得到错误结果? 本文先给出可直接复述的结论,再用最小代码说明Node.js Base64 流式 编码 3 字节 边界的工作方式、判断依据、项目边界和常见误区。
Node.js Buffer.alloc 与 Buffer.allocUnsafe 的安全边界是什么,复用未清零内存会泄露什么? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer alloc allocUnsafe 安全的工作方式、判断依据、项目边界和常见误区。
Node.js 中字符串长度与 Buffer.byteLength 不一致时,HTTP Content-Length 应按哪一个计算? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer.byteLength Content-Length 字符串长度的工作方式、判断依据、项目边界和常见误区。
Node.js 收集流数据用数组拼接字符串与 Buffer.concat 在内存峰值上有何不同? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer.concat 内存 峰值 收集流的工作方式、判断依据、项目边界和常见误区。
Node.js Buffer.from 拷贝与 Buffer.allocUnsafe 的小 Buffer 池化机制在何时会共享底层 ArrayBuffer? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer poolSize allocUnsafe 共享 ArrayBuffer的工作方式、判断依据、项目边界和常见误区。
Node.js Buffer.slice 共享内存而 Buffer.from(buffer) 拷贝,这一差异如何影响缓存大文件切块的释放? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer slice 共享内存 拷贝 释放的工作方式、判断依据、项目边界和常见误区。
Node.js 把 Buffer 转成 ArrayBuffer 时为什么直接用 buffer.buffer 可能带出池内多余字节? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer 转 ArrayBuffer byteOffset byteLength pool的工作方式、判断依据、项目边界和常见误区。
Node.js Buffer 与 Uint8Array、DataView 在读取网络二进制包头时应如何分工? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer Uint8Array DataView 二进制包头的工作方式、判断依据、项目边界和常见误区。
解释 cork 暂存写入与 uncork 释放的关系,使用 writev 示例验证小写入批量交付,并说明嵌套调用计数、end 的处理、背压等待死锁与无批处理实现时的成本。
Node.js 用 crypto Hash 对流式下载做校验时,update 顺序和最终 digest 时机有哪些坑? 本文先给出可直接复述的结论,再用最小代码说明Node.js crypto Hash stream update digest 顺序的工作方式、判断依据、项目边界和常见误区。
stream.destroy(err) 与 writable.end() 有什么区别? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream destroy end error 事件的工作方式、判断依据、项目边界和常见误区。
Node.js 流处理内存持续上涨时,如何区分是未遵守背压、Buffer 视图钉住大内存还是对象模式堆积? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream 内存上涨 背压 Buffer slice 诊断的工作方式、判断依据、项目边界和常见误区。
Node.js Duplex 与 Transform 的差别是否只是名字不同,哪些 I/O 场景必须用 Duplex? 本文先给出可直接复述的结论,再用最小代码说明Node.js Duplex Transform 区别 场景的工作方式、判断依据、项目边界和常见误区。
Node.js 读取未知编码文本流时,latin1 与 utf8 混用会怎样破坏字节,何时应先探测 BOM? 本文先给出可直接复述的结论,再用最小代码说明Node.js 编码 BOM latin1 utf8 流的工作方式、判断依据、项目边界和常见误区。
Node.js Writable 在 end 之后再 write 会触发什么错误,为什么不能靠 try/catch 捕获异步流错误? 本文先给出可直接复述的结论,再用最小代码说明Node.js write after end ERR_STREAM_WRITE_AFTER_END的工作方式、判断依据、项目边界和常见误区。
区分可读耗尽、可写完成和资源关闭,说明 finished 如何组合成功与异常结束、双工流的等待范围和 cleanup 选项,并用 PassThrough 示例验证写入完成后仍有可读数据。
区分自动推送的 flowing 模式和主动 read 的 paused 模式,解释 readableFlowing 三种状态、data 与 readable 的使用方式、暂停恢复及混用消费接口造成的理解偏差。
Node.js 的 Readable、Writable、Duplex、Transform 分别解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream 四种流类型 Readable Writable Duplex Transform的工作方式、判断依据、项目边界和常见误区。
Node.js 顺序读取超大文件为什么流式加背压比 readFile 全量读入更适合,何时 readFile 反而更简单? 本文先给出可直接复述的结论,再用最小代码说明Node.js 大文件 createReadStream readFile 背压的工作方式、判断依据、项目边界和常见误区。
Node.js fs.createReadStream 打开失败时错误发生在哪一步,调用方如何避免把 open 错误当作数据错误重试? 本文先给出可直接复述的结论,再用最小代码说明Node.js createReadStream open error ENOENT的工作方式、判断依据、项目边界和常见误区。
Node.js fs.createReadStream 的 start、end 选项如何实现 HTTP Range 分段下载且避免越界? 本文先给出可直接复述的结论,再用最小代码说明Node.js fs.createReadStream start end Range的工作方式、判断依据、项目边界和常见误区。
Node.js 将文件流压缩后发给 HTTP 客户端时,为什么 Content-Length 通常不可预知,应改用什么头? 本文先给出可直接复述的结论,再用最小代码说明Node.js gzip 流式 Content-Length Transfer-Encoding chunked的工作方式、判断依据、项目边界和常见误区。
Node.js Buffer.from(str, 'hex') 遇到奇数长度或非法字符时行为如何,校验责任在哪? 本文先给出可直接复述的结论,再用最小代码说明Node.js Buffer.from hex 非法字符 截断的工作方式、判断依据、项目边界和常见误区。
Node.js 流的 highWaterMark 怎么调,越大吞吐就越高吗? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream highWaterMark 内存 吞吐 调优的工作方式、判断依据、项目边界和常见误区。
Node.js 服务端用 fs.createReadStream 经 pipeline 写 HTTP 响应时,客户端中途断开会触发哪些事件? 本文先给出可直接复述的结论,再用最小代码说明Node.js HTTP 下载 pipeline 客户端断开 aborted的工作方式、判断依据、项目边界和常见误区。
Node.js 接收 HTTP 上传流时如何用背压限制落盘速度,超限请求应在哪一层截断? 本文先给出可直接复述的结论,再用最小代码说明Node.js HTTP 上传流 背压 大小限制的工作方式、判断依据、项目边界和常见误区。
实现 Node.js 自定义 Readable 时 _read(size) 内 push() 返回 false 应如何控制数据源? 本文先给出可直接复述的结论,再用最小代码说明Node.js 自定义 Readable _read push 返回 false的工作方式、判断依据、项目边界和常见误区。
实现 Node.js 自定义 Writable 时 _write 的 callback 应何时调用,延迟调用会引发什么问题? 本文先给出可直接复述的结论,再用最小代码说明Node.js 自定义 Writable _write callback的工作方式、判断依据、项目边界和常见误区。
Node.js 用 Transform 解析 NDJSON 时,最后一块没有换行也应产出一条记录,应放在哪里处理? 本文先给出可直接复述的结论,再用最小代码说明Node.js NDJSON Transform flush 最后一条的工作方式、判断依据、项目边界和常见误区。
多个 Node.js Readable 同时 pipe 到同一个 Writable 时,如何避免 chunk 交错导致文件损坏? 本文先给出可直接复述的结论,再用最小代码说明Node.js 多 readable 同一 writable 交错 pipe的工作方式、判断依据、项目边界和常见误区。
Node.js 流的 objectMode 改变了 highWaterMark 和 chunk 的什么计量方式? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream objectMode highWaterMark chunk的工作方式、判断依据、项目边界和常见误区。
用 Node.js PassThrough 给上传流统计字节数时,它是否改变数据内容,又如何避免自身成为背压死角? 本文先给出可直接复述的结论,再用最小代码说明Node.js PassThrough 字节统计 背压的工作方式、判断依据、项目边界和常见误区。
Node.js 用 pause/resume 对 Readable 做限速时,为什么不能保证精确速率,还要配合什么机制? 本文先给出可直接复述的结论,再用最小代码说明Node.js readable pause resume 限速 背压的工作方式、判断依据、项目边界和常见误区。
比较 pipe 的连接与背压能力和 pipeline 的整链完成、错误及销毁管理,用对象转换示例验证成功与中途失败,并说明 HTTP 响应销毁后无法补写错误页及流外资源的清理责任。
Node.js stream/promises 的 pipeline 与 finished 相比事件回调写法解决了哪些收尾竞态? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream promises pipeline finished的工作方式、判断依据、项目边界和常见误区。
解释 read 返回 null 的多种情况,区分生产方 push(null)、缓冲读完和 end 事件,并用可控 Readable 示例验证暂时无数据、随后到达的数据以及 readableEnded 的变化。
消费方对 Node.js Readable 调用 destroy 后,底层定时器或数据库游标为什么不一定自动释放? 本文先给出可直接复述的结论,再用最小代码说明Node.js readable destroy 底层资源 清理 _destroy的工作方式、判断依据、项目边界和常见误区。
Node.js Readable.from 把数组或异步迭代器转成流时,背压是否自动生效? 本文先给出可直接复述的结论,再用最小代码说明Node.js Readable.from async iterator 背压的工作方式、判断依据、项目边界和常见误区。
Node.js net.Socket 作为 Duplex 出现 EAGAIN 或写返回 false 时,应用层应暂停什么操作? 本文先给出可直接复述的结论,再用最小代码说明Node.js net.Socket Duplex write false EAGAIN 背压的工作方式、判断依据、项目边界和常见误区。
Node.js 把一个上传流同时写磁盘和转发到远端时,复制成两个 PassThrough 为什么会放大背压? 本文先给出可直接复述的结论,再用最小代码说明Node.js 流 tee 分支 PassThrough 背压的工作方式、判断依据、项目边界和常见误区。
Node.js Transform 按行切分文本时,换行符被拆到两个 chunk 应如何保留状态而不丢行? 本文先给出可直接复述的结论,再用最小代码说明Node.js Transform 按行分割 跨 chunk 换行的工作方式、判断依据、项目边界和常见误区。
Node.js Transform 的 _transform 与 _flush 分别适合处理哪类边界,GZIP 收尾为什么属于 _flush? 本文先给出可直接复述的结论,再用最小代码说明Node.js Transform _transform _flush 边界的工作方式、判断依据、项目边界和常见误区。
Node.js 流式按 chunk 解码 UTF-8 时,为什么不能直接对每个 Buffer 调 toString 拼接? 本文先给出可直接复述的结论,再用最小代码说明Node.js UTF-8 跨 chunk string_decoder toString的工作方式、判断依据、项目边界和常见误区。
Node.js Worker 返回 ArrayBuffer 结果时,共享 SharedArrayBuffer 与 postMessage 拷贝各自适合什么同步需求? 本文先给出可直接复述的结论,再用最小代码说明Node.js worker SharedArrayBuffer ArrayBuffer postMessage的工作方式、判断依据、项目边界和常见误区。
Node.js zlib 变换流在高压缩比数据上输出突增时,背压如何沿 pipeline 反向传到文件读端? 本文先给出可直接复述的结论,再用最小代码说明Node.js zlib transform 背压 pipeline 文件读的工作方式、判断依据、项目边界和常见误区。