今天在写个上传的时候遇到了的问题,用了formidable中间件,这个东西不像multer那样可以自动创建文件夹,所以就想自己写个方法判断一下文件夹是否存在,不存在的话就创建一个。
问题就此出现,先上运行截图:
截图中可以看到fs.existSync将不存在的目录路径返回了true,期间也尝试了一下用其他方法(比如fs.accessSync,不存在的路径不会抛异常)都不行。。我开始怀疑人生了,是不是我哪里写错了?现在比较懵逼看不出来。。。下面是我的代码:
function mkdirsSync(dirpath) {
if (!fs.existsSync(dirpath)) {
let pathtmp = '';
dirpath.split(path.sep).forEach(function(dirname) {
pathtmp = pathtmp ? path.join(pathtmp, dirname) : dirname;
if(!pathtmp) {
return;
}
console.log(pathtmp);
if(!fs.existsSync(pathtmp)) {
try {
fs.mkdirSync(pathtmp);
} catch (err) {
console.log(err);
}
} else {
console.log('Exist path %s', pathtmp);
}
});
}
return true;
}
mkdirsSync('Users/nuxio/workspace/express-blog-api/server/public/upload/blog_imgs');
SOS~~~~~~