node.js - Node JS 创建嵌套目录
问题描述
我想编写一个函数,该函数基于内部包含文件的对象结构创建嵌套目录。到目前为止,我已经到了能够创建此类目录的地步,但它仅适用于对象的第一个键。
下面的代码:
const fs = require("fs");
const templates = require("./templates.js");
const appDirectory = process.cwd();
function run() {
createDirectories(templates);
}
function createDirectories(obj, path = "") {
for (const prop in obj) {
if (typeof obj[prop] === "object" && obj[prop] !== null) {
path += `/${prop}`
if (!fs.existsSync(`${appDirectory}/${path}`)) {
fs.mkdir(`${appDirectory}/${path}`, (err) => {
if (err) { return console.log(err) }
console.log(`Directory created: ${path}`);
})
}
return createDirectories(obj[prop], path);
} else {
fs.writeFile(`${appDirectory}/${path}/${prop}`, obj[prop], (err) => {
if (err) { return console.log(err) }
console.log(`File created: ${prop} in ${path} directory`);
})
return prop;
}
}
}
run();
并且目录的结构在一个对象内部
module.exports = {
"directory1": {
"innerDirectory1": {
"file1.js": require("./file1.js")
}
},
"directory2": {
"innerDirectory2": {
"file2.js": require("./file2.js")
}
},
"directory3": {
"innerDirectory3": {
"file3.js": require("./file3.js")
}
}
}
从这段代码中,我只得到了一个创建的对象目录( directory1/innerDirectory1/file1.js )
解决方案
推荐阅读
- python - psycopg2.errors.AmbiguousColumn:列引用“单词”不明确
- html - 将脚本标签添加到颤动的 webapp 小部件
- excel-formula - 一个公式组合 2 个列表 (2021)
- java - Wildfly 15 及更高版本:类名与包名冲突
- html - 由于 $(...).css 不是函数,无法删除 span 类的 css
- laravel - Laravel Cashier (Stripe) - 结帐 - invoice.paid & invoice.payment_failed 事件(webhooks)
- python - 在管道中时,RandomForestClassifier 需要更少的时间来训练?
- questdb - 如何使用嵌入式 API 在 QuestDB 中追加行?
- c# - HTTPClient:第二次成功调用 ASYNC GET 后,应用程序继续,但下一个方法使用结果,永远不会被调用
- python - 尝试显示模型结果时 Sparknlp Java 错误