我不理解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;
});
答案 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的实例但仍然被定义(在使用某些模块时这可能是真的)。