使用Node.js时,我遇到了“Error: EISDIR, read”的错误提示。

57

每当我尝试打开一个文件时,我会得到以下提示:

events.js:72
        throw er; // Unhandled 'error' event
Error: EISDIR, read
4个回答

92

这个错误很简单,

cd /tmp
mkdir dir
node -e "var fs = require('fs'); fs.createReadStream( 'dir' );"

EISDIR表示目标实际是一个目录,但是目标的预期文件类型是非目录类型。


你可以选择自己的答案作为正确答案,这是规则允许的。 :) - frandroid
7
让我等待。好像我自己回答错了问题,需要时间思考。怪杰夫。 - Evan Carroll

16

EISDIR错误发生在你尝试打开一个文件,但所给的路径是一个目录时。

你可以通过检查是否为目录来解决此问题-

if (fs.lstatSync(filePath).isDirectory()) {
  return;
}

更多参考请看这里的文档。


4

我最近遇到了一个错误,原因是之前使用了 bower link 命令来链接本地源,这会在目录中创建一个符号链接。当我取消所有组件的链接 bower unlink 后,它又正常工作了。

希望这可以帮助到某些人。


1

您可以通过运行以下类似命令来检查此类错误代码:

grep EISDIR -r /usr/include

当我这样做时,我会得到一行文字,它说:
/usr/include/uv.h:  XX(EISDIR, "illegal operation on a directory")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接