【问题标题】:node.js fs.readFile how to tell when reached EOFnode.js fs.readFile 如何判断何时到达 EOF
【发布时间】: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


【解决方案1】:

fs.readFile() 缓冲文件的全部内容(读取到 EOF)。如果读取文件时出错,则设置err 参数。否则,您将获得文件的内容作为回调的第二个参数。

【讨论】:

  • 我希望节点文档不那么混乱。 Python 在这方面要好得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-22
  • 2021-04-17
  • 2013-11-21
  • 1970-01-01
  • 2022-07-14
  • 1970-01-01
  • 2011-04-11
相关资源
最近更新 更多