创建文件

专注前端4年,一直以来奋战在搬砖的一线,从事着后台系统、PC端、移动端的开发,然而市场的发展速度确实让人有些许瞠目结舌,前端框架层出不穷,无论是 JS 框架(react.js、vue.js 、angular.js 、react-native、veex……) 还是 UI 框架(Bootstrap、elementUI、iView、vuetify、at-ui、flutter……) 都让我们的大脑不够用,并且每个公司的技术选型和业务不同,所选择的框架都不同,然而苦逼的我们没有办法学会所有,只有在入职公司要啥,我们就快速的学习啥,枪指哪儿,我们就打哪儿。最近准备横向发展一下自己,了解一下被炒的很热但实际市场用的又不是特别多,但是作为一个合格的前端开发人员必须掌握的知识——nodejs。我会将一些平时学习基础资料整理,顺便当做笔记记录一下,和大家一起分享学习。

fs 模块创建文件
// mkdir.js
const mkdir = require("./module");
mkdir("demo/test", err => {
  console.log(err);
});

mkdir("demo01", err => {
  console.log(err);
});

mkdir("demo02/demo03/demo04", err => {
  console.log(err);
});

自定义创建文件 modules

// modules.js
const fs = require("fs");
const path = require("path");

function mkdirs(pathname, callback) {
  // 需要判断是否是绝对路径(避免不必要的bug)
  pathname = path.isAbsolute(pathname) ? pathname : path.join(__dirname, pathname);
  // 获取相对路径
  pathname = path.relative(__dirname, pathname);
  let floders = pathname.split(path.sep); // path.sep 避免平台差异带来的bug
  let pre = "";
  floders.forEach(floder => {
    try {
      // 没有异常,文件已经创建,提示用户改文件已经创建
      let _stat = fs.statSync(path.join(__dirname, pre, floder));
      let hasMkdir = _stat && _stat.isDirectory();
      if (hasMkdir) {
        callback && callback(`文件${floder}已经存在,不能重复创建,请重新创建`);
      }
    } catch (error) {
      // 抛出异常,文件不存在则创建文件
      try {
        // 避免父文件还没有创建的时候先创建子文件所出现的意外bug,这里选择同步创建文件
        fs.mkdirSync(path.join(__dirname, pre, floder));
        callback && callback(null);
      } catch (error) {
        callback && callback(error);
      }
    }
    pre = path.join(pre, floder); // 路径拼合
  });
}

module.exports = mkdirs;

小结

注释已经写得很清楚了,就不过多的解释了,仅仅是学习笔记,相对简单易懂,希望各位看官可以提供更好的方法以供参考,不喜勿喷……

其它前端学习资料和文章如下

其它前端性能优化:

前端技术架构体系(没有链接的后续跟进):

其它相关

Logo

前往低代码交流专区

更多推荐