วัน: 11 ธันวาคม 2024

.env คืออะไร ?.env คืออะไร ?

ไฟล์ .env คือหัวใจสำคัญของการจัดการการตั้งค่า ในการพัฒนาซอฟต์แวร์ยุคใหม่ ไฟล์ .env เป็นไฟล์ข้อความธรรมดา ที่ใช้เก็บ Environment Variables หรือตัวแปรสภาพแวดล้อมของโปรเจกต์ โดยมีรูปแบบการเก็บข้อมูลเป็น KEY=VALUE

จุดประสงค์หลักคือการแยก “การตั้งค่า” ออกจาก “โค้ด” เพื่อให้โปรแกรมสามารถรันในสภาพแวดล้อมที่ต่างกัน ได้โดยไม่ต้องแก้ไขโค้ดด้านใน


ทำไมต้องใช้ .env ?

  1. Security
    ป้องกันการหลุดของข้อมูลสำคัญ เช่น API Keys, รหัสผ่าน Database หรือ Token ต่าง ๆ เข้าไปยัง Git Repository
  2. Flexibility
    เปลี่ยนการตั้งค่าได้ง่ายตามสภาพแวดล้อม เช่น
  3. Local
    ต่อ Database ในเครื่องตัวเอง
  4. Production
    ต่อ Database บน Cloud
  5. Standardization
    เป็นมาตรฐานที่ใช้กันทั่วโลก ไม่ว่าจะเป็น Node.js, Python, PHP, หรือ Docker

โครงสร้างและการใช้งาน

  1. การสร้างไฟล์
    สร้างไฟล์ชื่อ .env ไว้ที่ Root Directory ของโปรเจกต์ แล้วใส่ข้อมูลลงไปดังนี้
    PORT=3000
    DB_HOST=localhost
    DB_USER=root
    DB_PASS=123456
    STRIPE_API_KEY=sk_test_4eC39HqLyjWDarjtT1zdp7dc
    
  2. การเรียกใช้งาน
    สร้างไฟล์ชื่อ .env ไว้ที่ Root Directory ของโปรเจกต์ แล้วใส่ข้อมูลลงไปดังนี้
    require ('dotenv') .config () ; console.log (process.env.PORT) ; // ผลลัพธ์: 3000
    console.log (process.env.DB_HOST) ; // ผลลัพธ์: localhost
    

ข้อควรระวังที่สำคัญ


❌ ห้าม Push ไฟล์ .env ขึ้น Git เด็ดขาด!

นี่คือข้อผิดพลาดที่ร้ายแรงที่สุด ให้เพิ่มชื่อไฟล์ .env ลงในไฟล์ .gitignore เสมอ เพื่อไม่ให้ข้อมูลความลับถูกอัปโหลดขึ้น GitHub หรือ GitLab


✅ สร้างไฟล์ .env.example

เนื่องจากเราไม่ Push ไฟล์จริงขึ้น Git เพื่อนร่วมทีมจะไม่รู้ว่าต้องตั้งค่าตัวแปรอะไรบ้าง วิธีแก้คือสร้างไฟล์ .env.example ที่ใส่เฉพาะชื่อ Key แต่ไม่มี Value จริง

# .env.example
PORT=
DB_HOST=
DB_PASS=

✅ การตั้งชื่อ Variable

  • ควรเป็นตัวพิมพ์ใหญ่ทั้งหมด
  • ใช้ Under score เชื่อมคำ
  • ไม่ควรมีช่องว่างรอบเครื่องหมาย =

สรุป

การใช้ .env ช่วยให้โปรเจกต์ของคุณมีความปลอดภัยและจัดการง่ายขึ้น แต่อย่าลืมว่าไฟล์นี้เปรียบเสมือนกุญแจบ้าน ห้ามทำหลุดไปในที่สาธารณะ และควรมีการสำรองข้อมูลการตั้งค่าเหล่านี้ไว้ในที่ปลอดภัยเสมอครับ


อ่านเพิ่มเติม