TypeScript:
การอ่านไฟล์ข้อความ
วิธีการ:
มาอ่านไฟล์ข้อความใน TypeScript โดยใช้โมดูล fs/promises
ของ Node.js กันเถอะ ตัวอย่างนี้เราจะทำให้ง่าย: อ่านไฟล์ชื่อว่า example.txt
และบันทึกเนื้อหาของมัน
import { readFile } from 'fs/promises';
async function readTextFile(filePath: string) {
try {
const data = await readFile(filePath, 'utf8');
console.log(data);
} catch (error) {
console.error(`Error reading file from disk: ${error}`);
}
}
readTextFile('./example.txt');
ตัวอย่างผลลัพธ์:
สวัสดี, นี่คือเนื้อหาจากไฟล์นะ!
ลงลึก
ในประวัติศาสตร์, การอ่านไฟล์ใน Node.js มีพื้นฐานมาจากการใช้ callback อย่างหนัก, ซึ่งอาจนำไปสู่ปรากฏการณ์ที่เรียกว่า “callback hell” ด้วยการเกิดขึ้นของ Promises และ async/await
, กระบวนการนี้กลายเป็นเรื่องที่ง่ายดายมากขึ้น
นอกเหนือจาก fs/promises
, ยังมีโมดูล fs
ที่เก่ากว่าซึ่งยังคงทำงานกับรูปแบบ callback ยังมีตัวเลือกในการใช้การประมวลผลแบบ stream ด้วย fs.createReadStream()
, ซึ่งมีประโยชน์สำหรับไฟล์ขนาดใหญ่เนื่องจากใช้หน่วยความจำน้อยลง
ในเชิงการดำเนินการ, การเข้าถึงระบบไฟล์เป็นการทำงาน I/O และค่อนข้างช้ากว่าการทำงานในหน่วยความจำ นั่นคือเหตุผลที่รูปแบบการเขียนโค๊ดแบบ asynchronous สำคัญ — ช่วยป้องกันไม่ให้ thread หลักถูกบล็อกและอนุญาตให้ Node.js สามารถจัดการงานอื่นๆ ต่อไป
ดูเพิ่มเติม
สำหรับการศึกษาลึกลงไปในระบบไฟล์ของ Node.js:
- คู่มือ fs ของ Node.js: https://nodejs.org/api/fs.html
- การเข้าใจ
fs/promises
: https://nodejs.org/dist/latest/docs/api/fs.html#filehandlepromises - การอ่านไฟล์แบบใช้ stream: https://nodejs.org/api/stream.html#stream สำหรับทรัพยากรเฉพาะของ TypeScript:
- TypeScript Deep Dive: https://basarat.gitbook.io/typescript/
- คู่มือ TypeScript: https://www.typescriptlang.org/docs/handbook/intro.html