簡體   English   中英

嘗試在我的項目文件夾中創建新目錄時出現錯誤

[英]Getting error while trying to create new directory into my project folder

// Getting error throw new Error(`Error creating log folder ${logFolder} - 
// ${JSON.stringify(e)}`);
// Error: Error creating log folder ./logs/Pranjals-MacBook-Air.local -  
// {"errno":-2,"code":"ENOENT","syscall":"mkdir","path":"./logs/Pranjals- 
// MacBook-Air.local"}

// I am trying to create new directory if do not exists but it's throwing 
// me the error

let logFolder = `./logs/${os.hostname()}`;

if (!fs.existsSync(logFolder)) {
    try {
        fs.mkdirSync(logFolder);
    } catch(e) {
        throw new Error(`Error creating log folder ${logFolder} - ${JSON.stringify(e)}`);
    }
}

為了遞歸創建目錄,我使用了mkdirp包。

這是一個例子:

/**
 * CREATE DIR SYNC
 * Used to create a directory
 * @param {String} path
 */
let createDirSync = function (path = '') {
    const fs = require('fs');
    const mkdirp = require('mkdirp');
    if (!fs.existsSync(path)) {
        mkdirp.sync(path);
    }
};

createDirSync('/path/to/create/');

希望能幫助到你。

與@Sparw的答案相比,您無需使用庫就可以做到。 遞歸選項設置為true的nodejs v10.x

let logFolder = `./logs/${os.hostname()}`;

if (!fs.existsSync(logFolder)) {
    try {
        await fs.promises.mkdir(logFolder, { recursive: true }) //or fs.mkdirSync(logFolder, { recursive: true })
    } catch(e) {
        throw new Error(`Error creating log folder ${logFolder} - ${JSON.stringify(e)}`);
    }
}

//我只是添加了'{recursive:true}'屬性作為第二個參數,它對我來說效果很好

let logFolder = `logs/${os.hostname()}`;

if (!fs.existsSync(logFolder)) {
    try {
       fs.mkdirSync(logFolder, { recursive: true })
    } catch(e) {
        throw new Error(`Error creating log folder ${logFolder} - ${JSON.stringify(e)}`);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM