JavaScript Node 检查文件或目录是否为空

9863 Views

在事情成功之前,一切总看似不可能。——<纳尔逊·曼德拉>

介绍

Web 应用程序通常以某种形式接收用户输入- 对于任何输入,验证都很重要。确保表单字段包含有效数据,或者它们包含任何数据是您可以做的第一项检查。

当用户上传文件时 - 您需要检查这些文件是否为空,而不仅仅是它们是否存在。

此外,由于 Node 支持服务器端开发并且可以使用文件系统,您会发现自己一直在使用文件和目录,尤其是在创建 CLI 应用程序时。

在本指南中,我们将看看如何使用 Node.js 检查文件或目录是否为空。

注意:两方面查研究 - 从前端接收文件并对其进行验证,或者使用文件系统而不考虑可能不存在的前端。

检查是否使用 JavaScript 选择了文件

1234567891011121314

页面包含一个

接受一个 multipart 文件,通过。按下按钮后,将checkFile()触发该功能,从导入的script.js:

123456function checkFile() { let fileInputField = document.getElementById("file"); if (fileInputField.files.length == 0) { alert("Please select a file!") }}

我们获取我们的 input元素 document.getElementById()并检查files属性的长度,它的 input类型file为。如果它是空的,我们会提醒用户没有选择文件。

一旦我们确定用户提供了一个文件,我们就可以检查他们是否提供了一个非空文件。

fs的模块

Node.js是一种 JavaScript 运行时环境,可以在浏览器之外执行 JavaScript 代码。这也使我们能够与底层操作系统和文件系统进行交互。fs在这种情况下,内置(文件系统)模块为我们创造了方法。

我们将依赖于 fs.readFile() 和 fs.readdir() 方法。

使用 Node.js 检查文件是否为空

一旦用户通过表单将文件发送到您的后端,例如发送到/upload端点,就该检查文件是否为空。

最简单的检查方法是流式传输文件中的数据并检查其长度。如果文件中有0 个字节,或者更确切地说,如果length数据的 等于0,则文件为空:

1234567891011121314router.post('/upload', function(req, res) {trueconst fs = require('fs');trueconst multiparty = require('multiparty');truelet form = new multiparty.Form();trueform.parse(req, function(err, fields, files) {truetruelet file = files.keySelect[0];truetruefs.readFile(file, function(err, data) {truetruetrueif (data.length == 0) {truetruetruetruereturn res.status(422).json({message : "File is empty! Unprocessable Entity."});truetruetrue}truetrue})true});truereturn res.status(200).json({message: "Success"});});

如果不处理表单提供的文件,并且已经记住了名称,则可以完全跳过此过程并直接读取文件:

1234567fs.readFile("myFile.txt", function(err, data) {trueif (data.length == 0) {truetrueconsole.log("File is empty!");true} else {truetrueconsole.log("File is not empty!");true}})

使用 Node.js 检查目录是否为空

在检查目录是否为空时,我们可以使用以下 readDir() 方法:

1234567fs.readdir(directoryName, function(err, data) {trueif (data.length == 0) {truetrueconsole.log("Directory is empty!");true} else {truetrueconsole.log("Directory is not empty!");true}})

结论

处理文件对于 Node 项目来说是司空见惯的,因为它旨在用于服务器端。您可以执行以验证文件的基本检查之一是检查它们是否为空。

参考

https://stackabuse.com/node-check-if-file-or-directory-is-empty/

关注【公众号】,了解更多。

Previous

JavaScript 中的 正则表达式 和 匹配字符串

Next

JavaScript 使用 Cypress 进行端到端测试

支付宝打赏

微信打赏

赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!