NodeJS fs.rename总是抛出一个错误

时间:2017-02-06 12:12:52

标签: node.js fs

我不理解fs.rename()的一件事,为什么这段代码总是会抛出错误?

文件已正确重命名,但每次出现此错误Error: ENOENT: no such file or directory, rename '/path/to/file/example.log' -> '/path/to/file/example_1.log'

var fs = require('fs');
var mv = fs.rename('example.log', 'example_1.log', function(err) {

  if(err instanceof Error)
    throw err;

});

1 个答案:

答案 0 :(得分:0)

当我运行您的确切代码时:

var fs = require('fs');
var mv = fs.rename('example.log', 'example_1.log', function(err) {

  if(err instanceof Error)
    throw err;

});

(唯一的区别是添加fs要求)。

然后,当我没有当前目录中的文件时,我收到错误。

但是当我创建example.log并运行程序时,我没有收到任何错误,文件被重命名。

当然下次我再次收到错误,因为我不再拥有原始名称的文件。

你确定它不适合你吗?

顺便说一句,而不是

if (err instanceof Error)

您可能想要使用:

if (err)

如果你的错误不是Error的实例但仍然被定义(在使用某些模块时这可能是真的)。​​