node笔记_生成自定义目录文件

news2024/11/26 22:50:30

文章目录

    • ⭐前言
    • ⭐node生成目录
      • 💖 mkdirSync创建目录
      • 💖 stat判断目录是否存在
      • 💖 mkdir创建目录
      • 💖 动态创建目录文件
    • ⭐结束

⭐前言

大家好!我是yma16,本文分享node生成自定义目录文件。
背景:
解决处理生成自定义文件时候没有指定目录的问题
效果:
create_auto

往期文章
node_windows环境变量配置
node_npm发布包
linux_配置node
node_nvm安装配置
node笔记_http服务搭建(渲染html、json)
node笔记_读文件
node笔记_写文件
node笔记_连接mysql实现crud
node笔记_formidable实现前后端联调的文件上传
node笔记_koa框架介绍
node_koa路由

⭐node生成目录

思路:

  1. 检查路径是否存在
  2. 不存在的路径深度遍历生成逐级目录

💖 mkdirSync创建目录

例子:
相对与js执行文件所在目录创建test的目录

fs.mkdirSync(path.join(__dirname, './test')); 

mkdirSync

💖 stat判断目录是否存在

fsPromises.stat(path[, options])

  • path <string> | <Buffer> | <URL>
    options <Object>
    bigint <boolean> 返回的 <fs.StatFs> 对象中的数值是否应为 bigint。 默认值: false。
    返回:<Promise> 使用给定的 path 的 <fs.StatFs> 对象履行。
fs.stat('./yma16', (err, stats) => {
	console.log(stats,'stats')
	if (err) {
		console.log('不存在')
	} else {
		console.log('存在')
	}
})

judge-dir

💖 mkdir创建目录

创建目录yma16

fs.mkdir('./yma16', err => {
	if (err) {
		console.log('创建失败')
	} else {
		console.log('创建成功')
	}
})

mkdir-dir

💖 动态创建目录文件

const fs = require('fs');
const path = require('path');


/**
 * 读取路径信息
 * @param {string} path 路径
 */
function getStat(path) {
	return new Promise((resolve, reject) => {
		fs.stat(path, (err, stats) => {
			if (err) {
				resolve(false);
			} else {
				resolve(stats);
			}
		})
	})
}

/**
 * 创建路径
 * @param {string} dir 路径
 */
function mkdir(dir) {
	return new Promise((resolve, reject) => {
		fs.mkdir(dir, err => {
			if (err) {
				resolve(false);
			} else {
				resolve(true);
			}
		})
	})
}

/**
 * 路径是否存在,不存在则创建
 * @param {string} dir 路径
 */
async function dirExists(dir) {
	let isExists = await getStat(dir);
	//路径存在是目录
	if (isExists && isExists.isDirectory()) {
		return true;
	} else if (isExists) {
		// 文件
		return false;
	}
	//拿到上级路径
	let tempDir = path.parse(dir).dir;
	//递归判断,如果上级目录也不存在,则会代码会在此处继续循环执行,直到目录存在
	let status = await dirExists(tempDir);
	let mkdirStatus;
	if (status) {
		mkdirStatus = await mkdir(dir);
	}
	return mkdirStatus;
}


async function createFile() {
	for(let i=0;i<10;++i){
		let baseDir='./base'+'/'+i
		await dirExists(baseDir);
		const jsonContent = {
			name: 'yma16'
		}
		const jsonContentStr = JSON.stringify(jsonContent, null, '\t')
		fs.writeFile(baseDir + '/a.json', jsonContentStr, err => {
			if (err) return console.log(err);
			console.log('写入json成功')
		})
	}
}

createFile()

创建目录成功!
create-file

⭐结束

感谢你的阅读,如有不足或者错误欢迎指出!
sky-moon

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/608172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python中去掉数字末尾的0:一种简单有效的方法

Python中去掉数字末尾的0&#xff1a;一种简单有效的方法 Python作为一种流行的编程语言&#xff0c;经常被用于各种应用程序的编写。在这篇文章中&#xff0c;我们将介绍如何使用Python去掉数字末尾的零的一种简单有效的方法。 为什么要去掉数字末尾的0&#xff1f; 对于数…

【工具使用】STM32CubeMX-GPIO配置

一、概述 无论是新手还是大佬&#xff0c;基于STM32单片机的开发&#xff0c;使用STM32CubeMX都是可以极大提升开发效率的&#xff0c;并且其界面化的开发&#xff0c;也大大降低了新手对STM32单片机的开发门槛。     本文主要讲述STM32芯片的GPIO的配置及其相关知识。GPIO…

(转载)基本粒子群算法及惯性权重分析(matlab实现)

1 理论基础 粒子群算法(particle swarm optimization,PSO)是计算智能领域&#xff0c;除了蚁群算法、鱼群算法之外的一种群体智能的优化算法。该算法最早由Kennedy和Eberhart在1995年提出的。PSO算法源于对鸟类捕食行为的研究&#xff0c;鸟类捕食时&#xff0c;找到食物最简单…

一零五九、Windows系统(amd)通过VMware安装黑苹果

我来详细的说一下过程&#xff1a; 配置&#xff1a; windows amd锐龙VMware 16.0 &#xff08;16.1.0 build-17198959&#xff09;macos 11.1unlocker(工具&#xff0c;让虚拟机支持引导苹果系统) 总体步骤&#xff1a; 下载iso镜像和unlocker工具,这里提供两个链接&#…

Spring Cloud Alibaba Nacos 构建配置中心

构建配置中心 新建命名空间 登录 Nacos 面板&#xff0c;依次点击左侧菜单栏【命名空间→新建命名空间】、填写命名空间名和描述信息&#xff0c;点击【确定】&#xff1a; 新建配置文件 依次点击左侧菜单栏【配置管理→配置列表】、切换到指定命名空间【此处为 shop】、点击…

MySQL中的CONCAT()函数和CONCAT_WS()函数

一、介绍 1. CONCAT() MySQL的CONCAT()函数用于将多个字符串连接在一起。它接受两个或多个字符串参数&#xff0c;并返回它们的连接结果。 示例&#xff1a; select concat("hello"," ","world") as concatenated_str; 执行结果&#xff1a…

基于SpringBoot的爱心家园服装捐赠系统

目录 1、项目介绍 2、项目技术 3、运行环境 4、项目介绍 5、项目代码 5、运行截图 6、源码获取 1、项目介绍 角色:管理员、用户 管理员:管理员登录系统后&#xff0c;可以对首页、个人中心、用户管理、捐赠记录管理、论坛管理、留言管理、心愿管理等功能进行相应的操作…

二、KeilMDK+STM32CubeMX建立工程_LED灯闪烁为例

1、开发环境 (1)KeilMDK&#xff1a;V5.38.0.0 (2)STM32CubeMx:V6.8.1 (3)MCU:STM32F407ZGT6 2、实验目的&原理图 2.1、实验目的 实现两个LED灯以500毫秒闪烁一次。 2.2、原理图 (1)LED阴极接GPIO&#xff0c;GPIO输出低电平&#xff0c;LED点亮&#xff1b;GPIO输…

【Python】列表 List ② ( 使用下标索引访问列表 | 正向下标索引 | 反向下标索引 | 嵌套列表下标索引 | 下标索引越界错误 )

文章目录 一、使用下标索引访问列表1、下标索引用法2、正向下标索引3、反向下标索引4、代码示例 - 列表下标索引基本用法 二、嵌套列表下标索引1、嵌套列表下标索引简介2、代码示例 - 嵌套列表下标索引 三、下标索引越界错误 一、使用下标索引访问列表 1、下标索引用法 在 Pyth…

java SSM 宠物寄养管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 JSP SSM 宠物寄养管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采…

吐血整理,Selenium4自动化测试常用函数总结,各种场景操作实战...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Selenium4自动化测…

GC 调优(实战篇)

高分配速率(High Allocation Rate) 分配速率(Allocation rate)表示单位时间内分配的内存量。通常使用 MB/sec作为单位, 也可以使用 PB/year 等。 分配速率过高就会严重影响程序的性能。在JVM中会导致巨大的GC开销。 如何测量分配速率? 指定JVM参数: -XX:PrintGCDetails -X…

WPS小技巧:在word进行手写批注、观看版式、自动保存、检测拼写错误的单词。

手写批注&#xff1a; 在审阅中可以看到一个画笔功能 点开后可以进行手写批注&#xff1a; 观看版式&#xff1a; 在视图选项卡中可以看到各种不同的版式&#xff1a; 选择不同&#xff0c;表现效果也不同&#xff1a; 全屏显示&#xff1a; 阅读模式&#xff1a; 写作模式&am…

【白话机器学习系列】白话向量点积

白话向量点积 点积&#xff08;Dot Product&#xff09;是机器学习中最常见的向量操作。本文将通过简洁易懂的语言配合大量图形为大家介绍点积运算及其背后的数学意义。 文章目录 背景知识几何视角向量的大小Cosine举例几何意义 坐标视角两种视角的等价性点积的作用总结 背景…

GC 调优(基础篇)

GC调优(Tuning Garbage Collection)和其他性能调优是同样的原理。初学者可能会被 200 多个 GC参数弄得一头雾水, 然后随便调整几个来试试结果,又或者修改几行代码来测试。其实只要参照下面的步骤&#xff0c;就能保证你的调优方向正确: 列出性能调优指标(State your performan…

2023-06-04 Unity ScriptableObject1——ScriptableObject数据文件

文章目录 一、创建数据模板二、创建数据文件三、使用数据文件四、非持久化特性 ​ ScriptableObject 是 Unity 提供的一个数据配置存储基类&#xff0c;可以用来保存大量数据的数据模板&#xff0c;类似于可以自定义的数据资源文件模板 ​ 它是一个类似 MonoBehavior 的基类&am…

简单易懂的基础封装模块,让Web测试更简单!

目录 前言&#xff1a; 1. 环境配置 2. 创建基础封装模块的类 3. 运行测试用例 4. 结论 前言&#xff1a; 在当今互联网时代&#xff0c;Web应用程序的开发变得越来越重要。随着Web应用程序数量的增加&#xff0c;需要进行测试的Web应用程序也日益增加。为了加速测试过程&…

京东太狠:100W数据去重,用distinct还是group by,说说理由?

背景说明&#xff1a; Mysql调优&#xff0c;是大家日常常见的调优工作。所以&#xff0c;Mysql调优是一个非常、非常核心的面试知识点。在40岁老架构师 尼恩的读者社群(50)中&#xff0c;其相关面试题是一个非常、非常高频的交流话题。 近段时间&#xff0c;有小伙伴面试京东…

【论文】——Robust High-Resolution Video Matting with Temporal Guidance浅读

视频matting 时序监督 摘要 我们介绍了一种稳健、实时、高分辨率的人类视频抠图方法&#xff0c;该方法取得了新的最先进性能。我们的方法比以前的方法轻得多&#xff0c;可以在Nvidia GTX 1080Ti GPU上以76 FPS处理4K&#xff0c;以104 FPS处理HD。与大多数现有的逐帧作为独…

118.【微信小程序 - 02】

微信小程序-02 (六)、小程序基础加强1.自定义组件-组件的创建与引用(1).创建自定义组件(2).引用组件(全局和局部)(3).局部引用组件(4).全局引用组件(5).全局引用和局部引用的建议(6).组件和页面的区别 2.自定义组件-样式(1).组件样式隔离(2).组件样式隔离的注意点(3).修改组键的…