首页 > 编程语言 >Node中fs模块的一些操作API

Node中fs模块的一些操作API

时间:2023-08-03 14:33:02浏览次数:34  
标签:Node promises fs option 删除 require API catch

Node中fs模块的一些操作API_node

这里主要讲一讲node里面fs模块的一些基操!本篇只讲几个API,后续的可能会在其他文章补充!
声明:本文的代码是koa2环境中的,是CommonJS的规范,需要使用require引入!

什么是fs

fs 全称为 file system ,称之为 文件系统 ,是 Node.js 中的 内置模块,直接导入使用即可!

模块中的API,分异步和同步操作,这里不过多解释,主要讲的是异步API、Promise调用,我们只需要做相应的处理即可!

使用方法

官方给了两种使用案例,一种是Promise(使用try、catch包裹) ,另一种是回调。

同步的方法建议使用try、catch包裹!

Promise用法

执行成功一般不会有返回,有返回的会特殊强调,执行失败会抛出异常!

引入的是fs/promises

try、catch

// 注意导入的是 fs/promises 是promises格式的
const { unlink } = require("fs/promises")

try {
  await unlink('/tmp/hello');
  console.log('successfully deleted /tmp/hello');
} catch (error) {
  console.error('there was an error:', error.message);
}

回调用法

一般只有一个回调函数,并且只有一个参数,若执行出错则返回参数有值,否则返回参数无值!

引入的是fs

// 注意直接导入 fs
const { unlink } = require("fs")

unlink('/tmp/hello', (err) => {
  if (err) throw err;
  console.log('successfully deleted /tmp/hello');
});

文件夹

文件夹或文件是否存在

fs.existsSync (回调用法)

只有回调用法

// 注意直接导入 fs
const { unlink } = require("fs")
// 返回的值 true 和 false
// 存在就是true
// 不存在就是false
fs.existsSync(path)

新建文件夹

fs.mkdir (Promise用法)

// 注意导入的是 fs/promises 是promises格式的
const { mkdir } = require("fs/promises")
// v10.0.0 以上可用
// 注意 有可选参数option
// option.recursive 是否创建父目录 , true 为创建
// 若option.recursive为false, 但是path中父级路径不存在 会抛出异常

try {
  await mkdir(path,option);
  // 创建成功
} catch (error) {
  // 创建失败
}

删除文件夹

fs.rmdir (Promise用法)

此API注意事项较多,请仔细查看!

// 注意导入的是 fs/promises 是promises格式的
const { rmdir } = require("fs/promises")
// v10.0.0 以上可用
// v14.14.0 以上不建议使用option.recursive 请改为fs.rm
// v16.0.0 以上不能对文件使用、不能对不存在的路径使用
// 注意 有可选参数option (注意版本)
// option.recursive 是否删除子项 , true 为删除

try {
  await rmdir(path,option);
  // 删除成功
} catch (error) {
  // 删除失败
}

文件

删除单个文件

fs.unlink (Promise用法)

// 注意导入的是 fs/promises 是promises格式的
const { unlink } = require("fs/promises")
// v10.0.0 以上可用
// 若path是软连接(类似于快捷方式),则只删除软连接,不影响原本
try {
  await unlink(path);
  // 删除成功
} catch (error) {
  // 删除失败
}

移动(剪贴)、重命名

fs.rename (Promise用法)

// 注意导入的是 fs/promises 是promises格式的
const { rename } = require("fs/promises")
// v10.0.0 以上可用
// oldPath 和 newPath 如只是文件名字不一致,最终类似于重命名,否则就是剪贴移动操作
try {
  await rename(oldPath,newPath)
  // 删除成功
} catch (error) {
  // 删除失败
}

删除文件和目录

类似于 rm -rf 删库跑路,注意使用场景!

fs.rm (Promise用法)

// 注意导入的是 fs/promises 是promises格式的
const { rm } = require("fs/promises")
// v14.14.0 以上可用
// 注意 有可选参数option 
// option.force  如果 path 不存在,则异常将被忽略
// option.recursive 是否递归删除子项 , true 为删除, 在递归模式下,操作将在失败时重试
// option.maxRetries 重试次数 option.recursive为true 有效
// option.retryDelay  重试等待时间 option.recursive为true 有效

try {
  await rm(path,option)
  // 删除成功
} catch (error) {
  // 删除失败
}

Node中fs模块的一些操作API_node_02

关注公众号了解更多

标签:Node,promises,fs,option,删除,require,API,catch
From: https://blog.51cto.com/u_16123566/6949008

相关文章

  • Restful API设计规范
    01-02 Restful接口规范1.简介 2000年RoyFielding博士在其博士论文中提出REST(RepresentationalStateTransfer)风格的软件架构模式后,REST就基本上迅速取代了复杂而笨重的SOAP,成为WebAPI的标准了。RESTful作为目前最流行的API设计规范,一定有着它独有的魅力:强大、简介......
  • cocoapi-pycocotools使用
    cocoapi-pycocotools使用安装pipinstallpycocotools==2.0.0orpipinstallpycocotools-windowsfrompycocotools.cocoimportCOCO函数和说明#这个文件实现了访问COCO数据集的接口.可以进行COCO标注信息的加载,解析和可视化操作classCOCO:#用于加载COCO标......
  • node封装一个图片拼接插件
    说在前面平时我们拼接图片的时候一般都要通过ps或者其他图片处理工具来进行处理合成,这次有个需求就需要进行图片拼接,而且我希望是可以直接使用代码进行拼接,于是就有了这么一个工具包。插件效果通过该插件,我们可以将图片进行以下操作:1、横向拼接两张图片如下,我们有这么两张......
  • .NET Core WebAPI中使用Swagger(完整教程)
    一、Swagger简介1.1-什么是Swagger?Swagger是一个规范且完整的框架,用于生成、描述、调试和可视化Restfull风格的Web服务。Swagger的目标是对RestAPI定义一个标准且和语言无关的接口,可以让人和计算机拥有无需访问源码、文档或网络流量监控就可以发现和连接服务的能力。当通过......
  • 程序员视角下的API数据接口对接指南
    ​ 在当今互联网时代,许多应用程序和网站都需要使用第三方的API接口来获取数据。API(ApplicationProgrammingInterface)允许不同的应用程序之间进行数据交互,从而提高开发效率和数据的可用性。本文将重点介绍如何对接API数据接口,包括请求方式、鉴权认证、参数传递等方面的内容。......
  • API接口的设计思路
    ​API接口设计是软件开发中非常重要的一环,良好的设计规范能够提高开发效率、减少问题和错误,并增强系统的可维护性和可扩展性。本文从程序员的视角,讨论一些常见的API接口设计规范。一、遵循RESTful原则REST(RepresentationalStateTransfer)是一种架构风格,基于HTTP协议提供了一组......
  • .NET Core WebAPI中使用Swagger(完整教程)
    一、Swagger简介1.1-什么是Swagger?Swagger是一个规范且完整的框架,用于生成、描述、调试和可视化Restfull风格的Web服务。Swagger的目标是对RestAPI定义一个标准且和语言无关的接口,可以让人和计算机拥有无需访问源码、文档或网络流量监控就可以发现和连接服务的能力。当通过S......
  • apiDoc 文档使用指南
    安装安装node.js安装apiDoc,项目根目录下npminstallapidoc-g配置在你的项目根目录下新建apidoc.json文件,该文件描述了项目对外提供接口的概要信息如名称、版本、描述、文档打开时浏览器显示标题和接口缺省访问地址。apidoc.json{"name":"ServiceEbikeAPIs","version":"......
  • flask初体验和fastapi初体验
    0.flask的介绍#python界的web框架 -Django:大而全,快速开发,公司内部项目-Flask:小而精,不具备web开发好多功能,丰富的第三方插件-FastApi:异步框架,主要为了做前后端分离接口-Sanic:异步框架,只支持python3.6及以上,性能比较高-Tornado:公司用的比较少。。。1.fl......
  • 组合式API
    setupsetup选项的写法与执行时机setup函数代码示例<script>import{ref}from'vue'exportdefault{setup(){constcount=ref(0)//返回值会暴露给模板和其他的选项式API钩子return{count}},mounted(){console.log(......