การลบไฟล์ใน Node.js
ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับการเขียนโปรแกรมเพื่อลบไฟล์ใน Node.js ซึ่งการลบไฟล์นั้นสามารถใช้ฟังก์ชันจากโมดูล fs ของ Node.js ได้ นี่เป็นเนื้อหาที่เราจะพูดถึงในบทนี้
- ฟังก์ชัน fs.unlink()
- ฟังก์ชัน fs.unlinkSync()
- ฟังก์ชัน fsPromises.unlink()
ฟังก์ชัน fs.unlink()
ฟังก์ชันพื้นฐานสำหรับลบไฟล์ใน Node.js คือฟังก์ชัน fs.unlink() ที่ทำงานแบบ Asynchronous นี่เป็นรูปแบบการใช้งาน
fs.unlink(path, callback);
- path: พาธของไฟล์ที่ต้องการลบ
- callback: ฟังก์ชันที่จะถูกเรียกเมื่อการทำงานเสร็จสิ้น
ต่อไปมาดูตัวอย่างการเขียนโปรแกรมเพื่อลบไฟล์ด้วยฟังก์ชันดังกล่าว นี่เป็นโปรแกรมลบไฟล์ Text อย่างง่าย โดยก่อนที่รันโปรแกรมคุณต้องสร้างไฟล์ my_file.txt ขึ้นมาก่อน
const fs = require("fs");
fs.unlink("my_file.txt", (err) => {
if (err) {
console.log(err.message);
} else {
console.log("my_file.txt was deleted successfully.");
}
});
นี่เป็นผลลัพธ์ของโปรแกรม
my_file.txt was deleted successfully.
ในตัวอย่างนี้ เราได้เขียนโปรแกรมเพื่อลบไฟล์ my_file.txt เมื่อการทำงานเสร็จสิ้น ฟังก์ชัน Callback จะถูกเรียกใช้งานพร้อมกับพารามิเตอร์ err ที่จะมีค่าเป็น null ในกรณีที่การลบไฟล์สำเร็จหรือเป็นออบเจ็ค Error ในกรณีเกิดข้อผิดพลาดในการลบไฟล์
ในการลบไฟล์นั้นไฟล์ที่ต้องการลบจะต้องมีอยู่จริง เนื่องจากเราได้รันโปรแกรมไปก่อนหน้าแล้ว หากรันโปรแกรมซ้ำอีกครั้งจะได้รับข้อผิดพลาดเกิดขึ้นว่าไฟล์ที่ต้องการลบไม่มีอยู่ดังที่แสดงด้านล่างนี้
ENOENT: no such file or directory, unlink 'C:\deleting-files\my_file.txt'
ฟังก์ชัน fs.unlinkSync()
ฟังก์ชัน fs.unlinkSync() เป็นอีกฟังก์ชันลบไฟล์ใน Node.js ที่ทำงานแบบ Synchronous ซึ่งจะบล็อกโปรแกรมจนกว่าการทำงานจะเสร็จสิ้น นี่เป็นรูปแบบการใช้งาน
fs.unlinkSync(path);
- path: พาธของไฟล์ที่ต้องการลบ
ในการทำงานฟังก์ชันนี้จะ throw ข้อผิดพลาดขึ้นหากการลบไฟล์ไม่สำเร็จ ซึ่งสามารถใช้คำสั่ง try catch เพื่อตรวจสอบข้อผิดพลาดในระหว่างการลบไฟล์ได้ นี่เป็นตัวอย่างการใช้งาน
const fs = require("fs");
try {
fs.unlinkSync("my_file.txt");
console.log("my_file.txt was deleted successfully.");
} catch (err) {
console.log(err.message);
}
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
my_file.txt was deleted successfully.
ฟังก์ชัน fsPromises.unlink()
ฟังก์ชัน fsPromises.unlink() เป็นฟังก์ชันลบไฟล์ที่จะส่งค่ากลับเป็น Promise ฟังก์ชันนี้จะอยู่ในโมดูลย่อย fs/promises
นี่เป็นรูปแบบการใช้งาน
fsPromises.unlink(path);
- path: พาธของไฟล์ที่ต้องการลบ
ฟังก์ชันนี้จะส่งค่ากลับเป็น Promise ออบเจ็คที่จะ Resolve เมื่อการลบไฟล์สำเร็จหรือ Reject ในกรณีที่การลบไฟล์ไม่สำเร็จ ซึ่งเราสามารถใช้เมธอด then และ catch ของ Promise เพื่อตรวจสอบผลการทำงาน นี่เป็นตัวอย่างการใช้งาน
const fsPromises = require("fs/promises");
fsPromises.unlink("my_file.txt").then(() => {
console.log("my_file.txt was deleted successfully.");
}).catch((err) => {
console.log(err.message);
});
นอกจากนี้เรายังสามารถใช้มันร่วมกับคำสั่ง async/await เพื่อทำให้การทำงานเป็นแบบ Synchronous
const fsPromises = require("fs/promises");
(async () => {
try {
await fsPromises.unlink("my_file.txt");
console.log("my_file.txt was deleted successfully.");
} catch (err) {
console.log(err.message);
}
})();
นี่เป็นผลลัพธ์ของโปรแกรมเมื่อการลบไฟล์สำเร็จ
my_file.txt was deleted successfully.
ในบทนี้ คุณได้เรียนรู้เกี่ยวกับการเขียนโปรแกรมเพื่อลบไฟล์บน Node.js ซึ่งในการลบไฟล์นั้นมีฟังก์ชันหลายรูปแบบให้ใช้งานไม่ว่าจะเป็น Callback, Synchronous หรือ Promise โดยคุณสามารถเลือกใช้วิธีที่เหมาะสมกับงานของคุณได้