nodejs 之創建文件

創建文件

專注前端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;

小結

註釋已經寫得很清楚了,就不過多的解釋了,僅僅是學習筆記,相對簡單易懂,希望各位看官可以提供更好的方法以供參考,不喜勿噴……

其它前端學習資料和文章如下


其它前端性能優化:

前端技術架構體系(沒有鏈接的後續跟進):

其它相關

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章