Elm คือภาษาโปรแกรมมิ่งสำหรับเว็บด้านหน้า ดังนั้นจึงไม่มีการเข้าถึงระบบไฟล์โดยตรง อย่างไรก็ตาม คุณจะส่งคำสั่งไปยังบริการแบ็กเอนด์ใน JavaScript นี่คือวิธีการโครงสร้างการโต้ตอบดังกล่าวด้วย Elm.
วิธีการ:Elm ทำงานในเบราว์เซอร์ ดังนั้นจึงไม่มีสิทธิ์เข้าถึงระบบไฟล์โดยตรง ดังนั้นคุณไม่สามารถสร้างไฟล์ชั่วคราวแบบดั้งเดิมได้ แต่ถ้าคุณต้องการฟีเจอร์ที่คล้ายกัน เราใช้พอร์ตของ Elm เพื่อโต้ตอบกับ JavaScript ซึ่งสามารถจัดการการสร้างไฟล์ชั่วคราวได้ port module Main exposing (..) – กำหนดพอร์ตสำหรับการสร้างไฟล์ชั่วคราวใน JavaScript port createTempFile : String -> Cmd msg – ส่งข้อมูลไปยัง JavaScript เพื่อสร้างไฟล์ชั่วคราว saveDataTemporarily : String -> Cmd msg saveDataTemporarily data = createTempFile data สำหรับส่วนของ JavaScript โดยใช้ File API: app.ports.createTempFile.subscribe(function(data) { var blob = new Blob([data], {type: 'text/plain'}); var url = URL.createObjectURL(blob); // ที่นี่คุณสามารถใช้ URL เพื่อดาวน์โหลด blob หรือส่งต่อไปยังส่วนอื่น ๆ ของแอปของคุณ console.log(url); // มันจะบันทึก URL ของไฟล์ชั่วคราว }); ตัวอย่างผลลัพธ์ในคอนโซล JavaScript:
Elm มุ่งเน้นไปที่การพัฒนาเว็บด้านหน้าเป็นหลัก ซึ่งการเข้าถึงระบบไฟล์โดยตรงจะเป็นไปไม่ได้เนื่องจากเหตุผลด้านความปลอดภัย แทนที่จะเป็นการจัดการกับการอัพโหลดไฟล์จากผู้ใช้ นี่คือวิธีที่คุณสามารถอ่านไฟล์ข้อความที่ผู้ใช้เลือก.
Elm ทำงานในเบราว์เซอร์ ดังนั้นจึงไม่มีสิทธิพิเศษในการเข้าถึงอาร์กิวเมนต์บรรทัดคำสั่งโดยตรงเหมือนกับภาษาฝั่งเซิร์ฟเวอร์หรือภาษาสำหรับเดสก์ท็อป อย่างไรก็ตาม เพื่อการสาธิต ลองสมมติว่าคุณกำลังใช้ Elm กับเฟรมเวิร์กฝั่งเซิร์ฟเวอร์เช่น Node.js ผ่าน elm server หรือการตั้งค่าที่คล้ายกัน ซึ่งอนุญาตให้ผ่านอาร์กิวเมนต์ เท่านั้น โค้ดของคุณจะไม่จัดการกับอาร์กิวเมนต์โดยตรง แต่เราจะจำลองรูปแบบดังนี้.
elm server
เนื่องจาก Elm ทำงานในเบราว์เซอร์และออกแบบมาเพื่อเป็นภาษาโปรแกรมมิ่งที่บริสุทธิ์โดยไม่มีผลกระทบด้านข้าง จึงไม่มีการเข้าถึงระบบไฟล์โดยตรง ดังนั้น การเขียนไปยังไฟล์มักเกี่ยวข้องกับการส่งข้อมูลออกไปยัง JavaScript ผ่านพอร์ต นี่คือวิธีการตั้งค่า.
Elm มุ่งเน้นไปที่การพัฒนาเว็บ ที่ซึ่งแนวคิดในการเขียนข้อมูลโดยตรงไปยัง stderr ไม่ถูกใช้งานในลักษณะเดียวกับในสภาพแวดล้อม command-line แบบดั้งเดิม อย่างไรก็ตามสำหรับโปรแกรม Elm ที่ทำงานใน Node.js หรือสภาพแวดล้อมที่คล้ายคลึงกัน การใช้พอร์ตเพื่อสื่อสารกับ JavaScript เป็นวิธีการหลักในการบรรลุฟังก์ชั่นที่คล้ายคลึงกัน นี่คือวิธีที่คุณอาจตั้งค่ามันขึ้นมา.