在事情成功之前,一切总看似不可能。——<纳尔逊·曼德拉>
介绍
Web 应用程序通常以某种形式接收用户输入- 对于任何输入,验证都很重要。确保表单字段包含有效数据,或者它们包含任何数据是您可以做的第一项检查。
当用户上传文件时 - 您需要检查这些文件是否为空,而不仅仅是它们是否存在。
此外,由于 Node 支持服务器端开发并且可以使用文件系统,您会发现自己一直在使用文件和目录,尤其是在创建 CLI 应用程序时。
在本指南中,我们将看看如何使用 Node.js
检查文件或目录是否为空。
注意:两方面查研究 - 从前端接收文件并对其进行验证,或者使用文件系统而不考虑可能不存在的前端。
检查是否使用 JavaScript 选择了文件
1 | <!DOCTYPE html> |
页面包含一个<form>
接受一个 multipart
文件,通过<input type="file">
。按下按钮后,将checkFile()
触发该功能,从导入的script.js
:
1 | function checkFile() { |
我们获取我们的 input
元素 document.getElementById()
并检查files属性的长度,它的 input
类型file
为。如果它是空的,我们会提醒用户没有选择文件。
一旦我们确定用户提供了一个文件,我们就可以检查他们是否提供了一个非空文件。
fs的模块
Node.js是一种 JavaScript 运行时环境,可以在浏览器之外执行 JavaScript 代码。这也使我们能够与底层操作系统和文件系统进行交互。fs在这种情况下,内置(文件系统)模块为我们创造了方法。
我们将依赖于 fs.readFile()
和 fs.readdir()
方法。
使用 Node.js 检查文件是否为空
一旦用户通过表单将文件发送到您的后端,例如发送到/upload端点,就该检查文件是否为空。
最简单的检查方法是流式传输文件中的数据并检查其长度。如果文件中有0 个字节,或者更确切地说,如果length数据的 等于0,则文件为空:
1 | router.post('/upload', function(req, res) { |
如果不处理表单提供的文件,并且已经记住了名称,则可以完全跳过此过程并直接读取文件:
1 | fs.readFile("myFile.txt", function(err, data) { |
使用 Node.js 检查目录是否为空
在检查目录是否为空时,我们可以使用以下 readDir()
方法:
1 | fs.readdir(directoryName, function(err, data) { |
结论
处理文件对于 Node 项目来说是司空见惯的,因为它旨在用于服务器端。您可以执行以验证文件的基本检查之一是检查它们是否为空。
参考
关注【公众号】,了解更多。
赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!