node.js下的fs模块,mkdir创建文件夹失败或文件命名问题

一个小小报错整了将近1个小时,最后发现是权限问题和文件命名问题。

报错描述:

1,调用node.js下的fs模块,使用mkdir方法创建文件夹时失败,且无任何错误输出。

2,检查代码后,代码逻辑无问题。

报错显示:

报错图片
报错截图

分析:

1,无报错输出,不知道是我的Vscode的配置问题还是怎么的,一直就是偶尔有报错输出,明明写了输出错误代码,但就是不会告诉你哪里错了。有些时候可以输出错误的地方。

2,问了AI(DeepSeek),让它再帮我生成了一份同样功能的代码,对于这种简单的代码,它给定代码肯定不存在拼写或逻辑错误。所以考虑是别的错误。

最后错误是

1.文件写入权限问题。

2.当前的这个js脚本文件命名问题(同样的文件,改成简短的123.js就能成功运行)。

因为要创建文件夹,对应的是写入操作,得确保在当前文件夹下的,当前用户有写入权限。查看方式,回到桌面,右键文件夹,点击属性:

一般来说,如果不是管理员权限运行该文件的话,那此时就是普通用户的权限。点击上图右侧中间的“编辑”按钮,可查看普通用户(即Users)在该文件夹拥有的权限,如下:

如果你没有设置勾选上“修改”和“写入”权限的话,就会出现我这样的无法成功调用mkdir方法的情况。修改为勾上就可,然后应用、确定,保存退出。

无法修改权限的解决办法

如果弹出弹窗“无法枚举容器中的对象 访问被拒绝”,无法成功修改权限的话,可以参考这篇文章:win10提示“无法枚举容器中的对象 访问被拒绝”终极解决方法   我就是参考这篇文章解决了权限问题,然后就能成功运行代码了。

修改权限后,仍然执行脚本失败,有可能是该文件有问题

如下:(截图可能看不懂,但这不重要)看后文

同样的代码,我复制到同一个目录下的新建的一个js文件里就可以成功运行,但是如果继续运行之前一直调试的文件就会一直报错,所以我怀疑是之前的文件已经用不了了

所以思路是,代码没问题,权限也没问题,只是当前的这个脚本文件有问题(因为一直调试,之前修改权限的时候报了该文件的错)。

所以新建一个文件(比如我这里随便取得123.js或者hello.js的名字),用同样的代码,就直接运行成功了。如下:

续更:

终于准确定位错误了,见下图。

同样的代码:

const fs = require('fs')

// stat 方法,status的缩写  状态。
fs.stat('./观书有感.txt', (err, data) => {
    if (err) {
        console.log('get succcss fail', err);
        return;
    }
    console.log(data);
})

文件命名不对就无法正确执行。我试了一下,分别将文件名改为“1-20_1fs模块查看资源状态.js”,“1-20_1fs模块查看资源状.js”,“1-20_1fs模块查看资源.js”,(依次删除一个汉字)只有第3个名称能正常运行。大家可以试一试,或者只有我的电脑有这个问题??

由此看,js文件的命名也会影响其运行。很小的一个点,能解决莫名其妙的报错。

所以以后要注意文件命名。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值