nodejs在使用fstat读取文件时抛出偏移出界限错误

您好使用nodejs和scoket io来推动一些数据的目标。 我从json文件中读取json数据以将其推送到目标。

我使用fs模块的fstat来读取一个文件,但是每当有一个并发校正或一段时间后,它会抛出偏移出界的错误。

这是代码片段。

fs.stat(fileName, function(error, stats) { fs.open(fileName, "r", function(error, fd2) { var buffer = new Buffer(stats.size); fs.read(fd2, buffer, 0, buffer.length, null, function(error, bytesRead, buffer) { var data = buffer.toString("utf8", 0, buffer.length); fs.close(fd2); }) }) 

这是它正在抛出的错误

  fs.js:457 binding.read(fd, buffer, offset, length, position, wrapper); ^ Error: Offset is out of bounds at Object.fs.read (fs.js:457:11) at /var/custom_nodejs_projects/js/server.js:84:14 at Object.oncomplete (fs.js:107:15) 

有人能在这里指导我,过去两天挣扎在这个问题上可能是什么问题。

如果文件存在但是为空(0字节),调用fs.read()将失败,并显示错误。

所以在阅读之前,请确保stats.size不是0。