از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Node: بررسی کنید که آیا File یا Directory EmptyWeb است یا نه، برنامههای کاربردی معمولاً ورودی کاربر را به شکلی دریافت میکنند – و با هر ورودی، اعتبارسنجی مهم است. اطمینان از اینکه فیلدهای فرم حاوی داده های معتبر هستند یا اینکه اصلاً حاوی هر داده ای هستند، یکی از اولین بررسی هایی است که می توانید انجام دهید. وقتی کاربر فایلهایی را آپلود میکند – شما میخواهید…
سرفصلهای مطلب
معرفی
برنامه های کاربردی وب معمولا ورودی کاربر را دریافت می کنند نوعی – و با هر ورودی، اعتبارسنجی مهم است. اطمینان از اینکه فیلدهای فرم حاوی داده های معتبر هستند یا اینکه اصلاً حاوی هر داده ای هستند، یکی از اولین بررسی هایی است که می توانید انجام دهید.
وقتی کاربر فایلهایی را آپلود میکند – باید بررسی کنید که آیا این فایلها هستند یا خیر خالی، نه فقط وجود یا نبودن آنها. علاوه بر این، از آنجایی که Node از توسعه سمت سرور پشتیبانی میکند و میتواند با سیستم فایل کار کند، میبینید که همیشه با فایلها و دایرکتوریها کار میکنید، به خصوص اگر در حال ایجاد یک برنامه CLI هستید.
در این راهنما، نگاهی به چگونه با استفاده از Node.js بررسی کنیم که آیا یک فایل یا دایرکتوری خالی است یا خیر.
توجه داشته باشید: این کار را می توان از طریق دو لنز مشاهده کرد – دریافت فایل از قسمت جلو و اعتبارسنجی آن، یا کار با سیستم فایل بدون توجه به فرانت اند که بالقوه وجود ندارد. ما نگاهی به هر دو خواهیم داشت.
بررسی کنید که آیا یک فایل با جاوا اسکریپت انتخاب شده است یا خیر
جاوا اسکریپت Vanilla وظیفه بررسی خالی بودن یا نبودن فایل را ندارد، زیرا می تواند بررسی کند که آیا یک فایل فرم فایلی به آن ضمیمه شده است، اما نمی تواند process خود فایل
از آنجا شروع می کنیم – بررسی می کنیم که آیا فایل از سیستم فایل انتخاب شده و به فرم پیوست شده است یا خیر. بیایید یک فرم ساده ایجاد کنیم روی قسمت جلویی
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Meta tags -->
</head>
<body>
<form enctype="multipart/form-data">
<input type="file" name="file" id="file">
<button type="submit" onclick="checkFile()">Submit</button>
</form>
<script src="script.js"></script>
</body>
</html>
را page حاوی الف <form>
که الف را می پذیرد multipart
فایل، از طریق یک <input type="file">
. پس از فشار دادن دکمه، checkFile()
تابع از وارد شده فعال می شود script.js
:
function 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 یک محیط زمان اجرا جاوا اسکریپت است که کد جاوا اسکریپت را اجرا می کند خارج از از مرورگر. این به ما این توانایی را می دهد که با سیستم عامل و سیستم فایل زیربنایی نیز ارتباط برقرار کنیم. ساخته شده در fs
ماژول (File System) در این مورد برای ما معجزه می کند.
ما تکیه خواهیم کرد روی را fs.readFile()
و fs.readdir()
مواد و روش ها.
با Node.js بررسی کنید که آیا یک فایل خالی است
هنگامی که کاربر یک فایل را از طریق یک فرم به بکاند شما، مثلاً به آن ارسال میکند /upload
نقطه پایانی، زمان بررسی خالی بودن فایل است.
ساده ترین راه برای بررسی، پخش جریانی داده ها در فایل و بررسی طول آن است. اگر وجود دارد 0 بایت در فایل، یا بهتر است بگوییم، اگر length
از داده ها برابر است با 0
، فایل خالی است:
router.post('/upload', function(req, res) {
const fs = require('fs');
const multiparty = require('multiparty');
let form = new multiparty.Form();
form.parse(req, function(err, fields, files) {
let file = files.keySelect(0);
fs.readFile(file, function(err, data) {
if (data.length == 0) {
return res.status(422).json({message : "File is empty! Unprocessable Entity."});
}
})
});
return res.status(200).json({message: "Success"});
});
ما استفاده کرده ایم multiparty
مدول برای به دست آوردن فایل از فرم، این مرحله را می توان با کتابخانه های مختلف دیگری نیز انجام داد، مانند Multer یا مهیب.
با multiparty
، می توانیم نمونه ای از یک فرم بسازیم و با عبور از آن، آن را تجزیه کنیم req
به آن، که ماست formData
از قسمت جلو ارسال می شود را keySelect()
روش برمی گردد همه فایلها از طریق فرم ارسال میشوند، اما از آنجایی که فرم ما فقط یک مورد را میپذیرد و ما فقط یک مورد را انتظار داریم – از طریق آن به آن دسترسی داریم (0)
. با استفاده از fs.readFile()
روش، ما در حال خواندن فایل و باز کردن آن هستیم data
. اگر این data
دارد length
از 0
– فایل خالی است و ما یک کد وضعیت “422 Unprocessable Entity” را برمی گردانیم.
اگر با فایلی که از فرم ارائه شده سر و کار ندارید و از قبل نام آن را در ذهن دارید، می توانید از این کار صرف نظر کنید. process به طور کامل و مستقیم فایل را بخوانید:
fs.readFile("myFile.txt", function(err, data) {
if (data.length == 0) {
console.log("File is empty!");
} else {
console.log("File is not empty!");
}
})
با Node.js بررسی کنید که آیا دایرکتوری خالی است
هنگام بررسی خالی بودن یک دایرکتوری، می توانیم از آن استفاده کنیم readDir()
روش:
fs.readdir(directoryName, function(err, data) {
if (data.length == 0) {
console.log("Directory is empty!");
} else {
console.log("Directory is not empty!");
}
})
این دو روش در نحو کاملاً معادل هستند (به جز نام متد)، بنابراین هر چیزی که برای یکی اعمال می شود، برای دیگری نیز صدق می کند. اگر data
دایرکتوری برابر است با 0
، خالی است
این معمولاً با فهرست کردن فایلها در یک فهرست همراه است.
نتیجه
کار با فایلها برای پروژههای Node معمول است، زیرا قرار است از آن استفاده شود روی سمت سرور یکی از بررسیهای اساسی که میتوانید برای تأیید اعتبار فایلها انجام دهید، بررسی خالی بودن یا نبودن آنهاست.
در این راهنما، نگاهی به روش بررسی خالی بودن یک فایل یا دایرکتوری با Node.js انداخته ایم.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1403-01-15 23:21:04