【发布时间】:2014-10-11 05:35:54
【问题描述】:
我只是在试用 node.js 和 fs 包。
使用 fs.readFile() 中的异步 IO,回调处理程序如何知道读取器是否已达到 EOF 或它只是耗尽了读取缓冲区大小、被换出或任何其他情况?也没有可查询的文件句柄。这是一个错误的节点习语吗?
非常感谢。 饭菜
--
@安倍。因此,我更改了代码,假设我将一次性完成所有内容,但遇到大文件时出错。但在所有其他情况下,它运行得非常完美
"buffer.js:194
this.parent = new SlowBuffer(this.length);
^
RangeError: length > kMaxLength
at new Buffer (buffer.js:194:21)
at fs.js:225:16
at Object.oncomplete (fs.js:107:15)"
【问题讨论】:
-
我怀疑如果发生了 EOF 以外的任何事情,那么回调中的
err参数将包含一些内容。你有没有遇到过除了EOF以外的东西,err里面什么都没有的情况? -
@Abe,感谢您的提示。正如我之前所说,我只是在学习节点,并希望在使用它之前了解这个野兽,这样我就不必在某个周六晚上的凌晨 3 点发现问题。我确实修改了代码,假设我一口气搞定了整个事情,并在一个测试用例中遇到了错误(更新了 q)
标签: node.js