該方法用於獲取一個路徑中的目錄名,使用方式如下:path.dirname(p);
該方法使用一個參數,參數為一個路徑可以是相對路徑,絕對路徑,可以為一個目錄的路徑,也可以為一個文件的路徑。當參數值為目錄路徑時,該方法返回該目錄的上層目錄;當參數值為文件路徑時,該方法返回該文件所在的目錄。
var dirname = path.dirname("./a/b");
console.log(dirname); // .a
Nodejs 遞歸創建多級目錄
nodejs遞歸創建目錄,同步和異步方法。在官方API中只提供了最基本的方法,只能創建單級目錄,如果要創建一個多級的目錄(./aaa/bbb/ccc)就只能一級一級的創建,感覺不是很方便,因此簡單寫了兩個支持多級目錄創建的方法。

代碼同步方法的代碼如下
function mkdirsSync(dirname) {
if (fs.existsSync(dirname)) {
console.log(dirname);
return true;
} else {
if (mkdirsSync(path.dirname(dirname))) {
console.log(path.dirname(dirname));
fs.mkdirSync(dirname);
return true;
}
}
}
注意filePath 一定要在最后加上 / 否則導出會報錯的。
var filePath = "./serial/miguCoinSerial/";
導出數據操作非常頻繁,其中導出的數據的思路分為2步驟。
1. 先通過文件系統將數據寫到服務器上面。
1)首先根據需求,從數據庫中找到要導出的數據。
2)規定導出文件的路徑即要將數據導出到去服務器的哪個文件夾下。判斷文件夾是否存在,如果不存在,直接創建文件夾,導出數據。如果文件夾存在,遍歷文件夾,判斷文件夾里面的文件是文件夾還是文件,如果是文件,直接刪除。如果是文件夾,要先刪除文件夾的文件才能刪除文件夾。
3)重點在於怎出導出數據到服務器
寫要用到文件系統fs
function exportdata(filePath,msg,res){
var data = [['序號', '用戶名','密碼', '昵稱']];
for (var i = 0; i < msg.length; i++) {
var param=msg[i];
var username=param.usersName;
var password=param.password;
var nick=param.nick;
var exportContent = [username, password,nick];
data.push(exportContent);
}
var buffer = xlsx.build([{name: "流水記錄", data: data}]);
var filename = new Date().format('yyyy-MM-dd') + ".xlsx";
fs.writeFileSync(filePath + filename, buffer, 'binary');
console.log("寫完了");
var result = JSON.stringify({scuess: true, filename: filename});
res.end(result);
}
2. 在從服務器上面下載下來
用window.open()打開新頁面
