【发布时间】:2018-04-21 05:08:09
【问题描述】:
我读过这样的文件缓冲区:
let imageBuffer
try {
imageBuffer = fs.readFileSync('/some/path/to/image.jpg')
} catch (e) {
console.log('error reading in file', e)
}
然后我尝试stat缓冲区:
let imageStats = fs.statSync(imageBuffer)
我收到以下错误:
Error: Path must be a string without null bytes
但是当我查看文档时,它说statSync 接受Buffer:
path: string | Buffer | URL
我仔细检查了缓冲区实际上是一个缓冲区:
console.log(imageBuffer instanceof Buffer) // returns true
还检查了尺寸:
console.log(imageBuffer.byteLength) // returns 5928109 which is the correct size
那么我在这里误解了什么?你只能stat一个文件路径吗?错误使它听起来像这样。但是文档似乎清楚地表明您也可以提供缓冲区。
错误还是我误解了什么?
【问题讨论】:
-
fs.readFileSync('/some/path/to/image.jpg')的结果即使是缓冲区也不是文件路径。除非该文件的内容是文件路径。您应该将'/some/path/to/image.jpg'传递给fs.statSync -
您可以将文件路径作为字符串、缓冲区或 URL 提供给
fs.statSync。但是 6MB JPEG 不是文件路径。
标签: javascript node.js fs stat