ใน Node.js, คุณสามารถอ่านไฟล์ได้โดยใช้โมดูล fs
(File System) ซึ่งเป็นโมดูลที่ใช้ในการทำงานกับไฟล์และโฟลเดอร์ในระบบไฟล์ของคุณ ตามนี้คือวิธีการอ่านไฟล์ใน Node.js:
นำเข้าโมดูล
fs
:
ในโค้ดของคุณ ให้เริ่มต้นโดยการนำเข้าโมดูลfs
ด้วยคำสั่งrequire
:1
const fs = require('fs');
ใช้
fs.readFile()
เพื่ออ่านไฟล์:
ใช้ฟังก์ชันfs.readFile()
เพื่ออ่านเนื้อหาของไฟล์ โดยระบุเส้นทางไฟล์และฟังก์ชันควบคุม (callback function) ที่จะถูกเรียกเมื่อการอ่านไฟล์เสร็จสิ้น:1
2
3
4
5
6
7
8
9
10
11const filePath = 'example.txt';
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('เกิดข้อผิดพลาดในการอ่านไฟล์:', err);
return;
}
console.log('เนื้อหาของไฟล์:');
console.log(data);
});ในตัวอย่างนี้เราใช้
'utf8'
เพื่อระบุ encoding ของไฟล์เป็น UTF-8 โดยที่เนื้อหาของไฟล์จะถูกอ่านเป็นข้อความ.การจัดการข้อผิดพลาด:
เมื่อมีข้อผิดพลาดในการอ่านไฟล์ ฟังก์ชัน callback จะรับอาร์กิวเมนต์แรกเป็นข้อผิดพลาด (ถ้ามี) และอาร์กิวเมนต์ที่สองเป็นข้อมูล (ถ้ามี) ดังนั้นคุณควรตรวจสอบerr
เพื่อรับรู้ว่ามีข้อผิดพลาดหรือไม่.การใช้
fs.readFileSync()
(เวอร์ชันแบบซิงโครนัส):
หากคุณต้องการอ่านไฟล์แบบซิงโครนัส (synchronously) คุณสามารถใช้fs.readFileSync()
ได้ตามนี้:1
2
3
4
5
6
7
8
9const filePath = 'example.txt';
try {
const data = fs.readFileSync(filePath, 'utf8');
console.log('เนื้อหาของไฟล์:');
console.log(data);
} catch (err) {
console.error('เกิดข้อผิดพลาดในการอ่านไฟล์:', err);
}โปรดทราบว่าการใช้
fs.readFileSync()
จะทำให้โค้ดถูกบล็อกไว้ (blocking) ระหว่างที่ไฟล์ถูกอ่าน ซึ่งอาจทำให้แอปพลิเคชันของคุณหยุดทำงานไประหว่างระยะเวลาที่อ่านไฟล์.
การใช้ fs.readFile()
หรือ fs.readFileSync()
ขึ้นอยู่กับความต้องการของคุณ หากคุณต้องการการอ่านแบบไม่บล็อกและมีความสามารถในการจัดการข้อผิดพลาดเป็นอิสระ fs.readFile()
เป็นตัวเลือกที่ดี แต่หากคุณต้องการการอ่านแบบซิงโครนัสให้ใช้ fs.readFileSync()
โดยระมัดระวังในการใช้ให้คำนึงถึงการบล็อกแอปพลิเคชันของคุณ.