?>

[:th]NodeJS ตอนที่ 10 [การทำงานเกี่ยวกับไฟล์][:]

0

[:th]ในการเขียนโปรแกรมสิ่งที่เราเกี่ยวข้องด้วยมากทีสุดอย่างหนึ่งก็คือการเขียนโปรแกรมร่วมกับไฟล์ ไม่ว่าจะเป็นไฟล์ Text เอกสาร รูปภาพ ไฟล์เสียง มัลติมีเดีย ล้วนเป็นส่วนประกอบในแอพพลิเคชั่นของเรา สำหรับ nodejs ไลบรารี่ที่ใช้จัดการเกี่ยวกับไฟล์อยู่ในไลบรารี่ที่ชื่อ fs ย่อมาจาก File System

ตัวอย่างการเขียนโค้ด สร้าง Text ไฟล์

  1. สร้างไฟล์ชื่อ ch10_fs.js
  2. ป้อนโค้ด ดังนี้

3. ทดสอบ

อธิบายโค้ด

เรียกใช้ไลบรารี่ fs

fs.writeFile (fileName,content ,callback) สร้างไฟล์

  • พารามิเตอร์แรก ‘message.txt’ คือชื่อไฟล์ที่ต้องการสร้าง ถ้ามีไฟล์นี้อยู่แล้วจะถูกเขียนทับ
  • พารามิเตอร์ตัวที่สอง ” คือข้อความที่ต้องการเขียนลงในไฟล์
  • พารามิเตอร์ตัวที่สาม (err) => คืนค่าเมื่อมีข้อผิดพลาดเกิดขึ้น

ตัวอย่างการเขียนโค้ดเพิ่มข้อมลูลลง Text ไฟล์

จากโค้ดตัวอย่างก่อนหน้านี่ เพิ่มโค้ด ดังนี้

ลองทดสอบ

ผลลัพธ์

เนื้อหาในไฟล์

ลำดับการทำงาน appendFile ทำก่อน writeFile เพราะเขียนเป็น asynchronous ทำให้ได้ผลลัพธ์ไม่เป็นลำดับต่อเนื่องกัน

ปรับเปลี่ยนโค้ดให้ทำงานตามลำดับ ดังนี้

ผลลัพธ์

เนื้อหาในไฟล์

จำได้มั้ย การเขียนโค้ดแบบนี้มันคือ callback hell มาปรับโค้ดให้อ่านง่ายด้วย promise

 

เมื่อเขียนข้อมูลลงไปแล้วเรามาเขียนโค้ดอ่านไฟล์กันบ้าง

ตัวอย่างการเขียนโค้ดอ่านไฟล์

fs.readFileSysc จะทำการอ่านไฟล์แบบ synchronous อ่านไฟล์จนจบก่อนจึงทำงานคำสั่งถัดไป

หากเราต้องการแก้ไขข้อมูลบรรทัดที่ต้องการสามารถทำได้  ดังนี้

ตัวอย่างการเขียนโค้ดแก้ไขข้อมูลบรรทัดที่ต้องการอย่างง่ายๆ

เพิ่มโค้ดต่อจากเมื่อสักครู่

อธิบายโค้ด

ทำการตัด ข้อความเป็นเก็บไว้ในอาร์เรย์ ด้วยการตัดบรรทัด \n คือแต่ละบรรทัด

แก้ไขบรรทัดที่ 2 ซึ่งอยู่ในตำแหน่งอาร์เรย์ที่ 1 ด้วยคำว่า Edit Data this line  (ตำแหน่งอาร์เรย์เริ่มที่ 0 พื้นฐานที่รู้กันอยู่แล้ว)

JavaScript เป็นภาษาที่มีความ dynamic อาร์เรย์ตำแหน่งที่ 2 ยังไม่มีค่าเลยก็สามารถประกาศและป้อนค่าไปได้เลย หลายๆภาษาจะไม่ยอมไห้ทำเช่นนี้ ซึ่งวิธีการแบบนี้ก็มีทั้งข้อดีและเสีย

ทำการแปลงอาร์เรย์เป็นข้อความ โดยให้เชื่อมต่อกันด้วย \n เป็นตัวแยกบรรทัดของแต่ละอาร์เรย์

ตัวอย่างการลบไฟล์

อธิบายโค้ด

NodeJS จะใช้คำไม่เหมือนภาษาอื่น ส่วนใหญ่ก็ใช้คำว่า delete หรือ remove แต่สำหรับ Node ใช้คำว่า unlink

เมื่อทำการลบไฟล์ก็ทำการตรวจสอยให้แน่ใจว่ามีไฟล์อยู่หรือไม่

พบกับตอนที่ 10.2 การจัดการเกี่ยวกับไฟล์ต่อ

 [:]

Share.

About Author

Leave A Reply

+ 80 = 90