热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nodejs内置模块path与fs模块简单使用

NodeJs中内置了许多有用的模块,无需下载依赖引入即可使用。 内置模块无需下载依赖constfsrequire(fs);fs模块 用于操作文件文件夹例如写入文件,内容追加,创建文

NodeJs 中内置了许多有用的模块,无需下载依赖引入即可使用。

// 内置模块 无需下载依赖const fs = require('fs');

fs 模块 

用于操作文件/文件夹 例如写入文件,内容追加,创建文件夹,删除文件等多种操作。

上篇文章记录了nodejs 使用koa框架上传图片。前端培训

那么既然有了上传,就应该有删除文件。

// 使用同步api 如果文件不存在 异常会报错fs.rmSync('要删除的文件路径');
// 也可通过参数 忽略异常fs.rmSync('要删除的文件路径', { force: false })

个人使用场景

1,新增数据,上传图片后使用保存后的路径,以及其他参数,保存数据库插入数据。

2,删除或更新数据时,如果之前上传的图片不清理掉,那么时间一长,数据一多,更不可能随意删除,会直接导致数据出问题。

所以,我选择了删除/更新数据库数据之后,同时删除/更新对应的文件。少占用存储空间,也减少垃圾文件。

// 引入path模块const path = require('path');

path 模块

用于对路径执行一些格式化(根据系统环境),又如路径拼接等操作。

 

path.basename

// 获取目录路径下文件path.basename('/文件夹/文件夹/图片.jpg'); // 返回 图片.jpg
// 也可只保留文件名称 去除后缀名 第二个参数 要去除的尾部部分path.basename('/文件夹/文件夹/图片.jpg', '.jpg'); // 返回 图片

 

path.dirname

// 返回目录路径path.dirname('/目录1/目录2/目录3'); // 返回 目录2path.dirname('/目录1/目录2/目录3/');// 返回 目录2path.dirname('/目录1/目录2/目录3/图片.jpg');// 返回 目录3

 

path.extname

// 获取扩展名 (也可理解为 小数点最后出现的位置一直到字符串结尾)path.extname('/public/img/a.jpg'); // 返回 .jpgpath.extname('/public/img/b.html'); // 返回 .html// 如果小数点出现在第一位且之后没有小数点 返回空字符串path.extname('./abc'); // 返回 ''// 如果小数点出现在最后 只返回小数点path.extname('index.'); 返回 .

 

path.join

// 最常用的拼接 (格式跟随当前系统环境)path.join('/目录1', '目录2', '目录3'); // /目录1/目录2/目录3
// 也可获取当前执行脚本的目录 与其他位置拼接
// 假设当前处于 /home/目录2 且/home下存在 目录1path.join(__dirname, '../目录1');  返回 /home/目录1path.join(__dirname, '../');  返回 /hom

 

全局变量

__dirname  当前文件夹具体路径 例如 /home

__filename 当前文件具体路径 例如 /home/index.js

以上是两个模块 常用的方式。

具体还是要根想实现的功能有直接关系。



推荐阅读
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 阿里云虚拟主机安装多个织梦系统的方法
    本文介绍了在阿里云虚拟主机上安装多个织梦系统的方法。通过创建不同名称的文件夹并将不同的域名解析到对应的目录,可以实现多个系统的安装。在安装过程中需要注意修改数据库前缀,并在系统设置中还原数据库。同时还介绍了阿里云虚拟主机二级域名绑定二级目录和域名重定向的用法。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
author-avatar
寤丨惘_191
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有