TypeScript:
การเขียนไฟล์ข้อความ
วิธีการ:
TypeScript โดยตัวมันเองไม่ได้จัดการงานไฟล์โดยตรงเนื่องจากมันถูกคอมไพล์เป็น JavaScript ซึ่งโดยปกติแล้วจะทำงานในบราวเซอร์ที่มีการเข้าถึงระบบไฟล์จำกัด อย่างไรก็ตามเมื่อใช้งานในสภาพแวดล้อม Node.js โมดูล fs
(File System) มีความสามารถในการเขียนไฟล์
การใช้งานโมดูล fs ของ Node.js
ขั้นแรก ตรวจสอบว่าคุณกำลังทำงานในสภาพแวดล้อม Node.js จากนั้นใช้โมดูล fs
เพื่อเขียนไฟล์ข้อความ ตัวอย่างพื้นฐาน:
import * as fs from 'fs';
const data = 'Hello, world!';
const filePath = './message.txt';
fs.writeFile(filePath, data, 'utf8', (err) => {
if (err) throw err;
console.log('The file has been saved!');
});
ส่วนนี้จะเขียน “Hello, world!” แบบไม่ต้องรอ (asynchronously) ลงใน message.txt
ถ้าไฟล์ไม่มีอยู่ Node.js จะสร้างขึ้นมา ถ้ามีอยู่แล้ว Node.js จะเขียนทับ
สำหรับการเขียนไฟล์แบบต้องรอ (synchronous), ใช้ writeFileSync
:
import * as fs from 'fs';
const data = 'Hello again, world!';
const filePath = './message.txt';
try {
fs.writeFileSync(filePath, data, 'utf8');
console.log('The file has been saved!');
} catch (err) {
console.error(err);
}
การใช้งานไลบรารีของฝ่ายที่สามที่ได้รับความนิยม
ในขณะที่โมดูล fs
แบบดั้งเดิมมีความสามารถมาก บางครั้งนักพัฒนาก็ชอบใช้ไลบรารีของฝ่ายที่สามเพื่อความสะดวกและความสามารถเพิ่มเติม fs-extra
เป็นตัวเลือกยอดนิยมที่ขยายความสามารถของ fs
และทำให้การดำเนินการไฟล์ง่ายขึ้น
ขั้นแรก คุณจำเป็นต้องติดตั้ง fs-extra
:
npm install fs-extra
จากนั้น คุณสามารถใช้ไลบรารีนี้ในไฟล์ TypeScript เพื่อเขียนเนื้อหาข้อความ:
import * as fs from 'fs-extra';
const data = 'This is fs-extra!';
const filePath = './extraMessage.txt';
// การใช้ async/await
async function writeFile() {
try {
await fs.writeFile(filePath, data, 'utf8');
console.log('The file has been saved with fs-extra!');
} catch (err) {
console.error(err);
}
}
writeFile();
ตัวอย่างโค้ดนี้ทำงานเหมือนกับตัวอย่าง fs
ก่อนหน้าแต่ใช้ไลบรารี fs-extra
ซึ่งเสนอไวยากรณ์ที่สะอาดกว่าสำหรับการจัดการ promises.