Environment Variables ใน Next.js

ใน Next.js, คุณสามารถใช้ Environment Variables เพื่อจัดการกับข้อมูลที่ต้องการเก็บไว้ในระบบแบบปิดเอาไว้ (private) หรือข้อมูลที่ต้องการกำหนดค่าเป็นตัวแปรต่างๆ ตามสภาพแวดล้อม (environment-specific) ตัวอย่างเช่น API keys, URLs, database credentials, หรือค่าตัวแปรอื่นๆ ที่ต้องการใช้ในโปรเจ็กต์ Next.js ของคุณ

นี่คือขั้นตอนการใช้ Environment Variables ใน Next.js:

  1. สร้างไฟล์ .env.local:
    ในรากโปรเจ็กต์ Next.js ของคุณ สร้างไฟล์ .env.local เพื่อเก็บ Environment Variables ของคุณ คุณสามารถใช้บริษัทใดก็ได้ในการสร้างไฟล์นี้ เช่น Visual Studio Code, หรือแม้แต่โปรแกรมเชลล์ โดยรันคำสั่ง:

    1
    touch .env.local
  2. เพิ่ม Environment Variables:
    ในไฟล์ .env.local, เพิ่ม Environment Variables ของคุณและกำหนดค่าตามที่คุณต้องการ เช่น:

    1
    2
    NEXT_PUBLIC_API_KEY=my-api-key
    DATABASE_URL=my-database-url

    คุณสามารถกำหนด Environment Variables ในไฟล์นี้ตามที่คุณต้องการ อย่าลืมใช้รูปแบบ KEY=VALUE เมื่อกำหนดค่า

  3. การเข้าถึง Environment Variables ในโค้ด Next.js:
    เรียกใช้ Environment Variables ในโค้ด Next.js โดยใช้ process.env ตัวอย่างเช่น:

    1
    2
    const apiKey = process.env.NEXT_PUBLIC_API_KEY;
    const databaseUrl = process.env.DATABASE_URL;

    NEXT_PUBLIC_ คือคำนำหน้าที่ทำให้ตัวแปรเป็นสาธารณะ (public) และสามารถเข้าถึงจากส่วนหน้า (client-side) ของโค้ด Next.js ได้ หากคุณไม่ต้องการให้ตัวแปรเป็นสาธารณะ คุณไม่ต้องใช้ NEXT_PUBLIC_ และตัวแปรนั้นจะสามารถเข้าถึงได้เฉพาะในส่วนของเซิร์ฟเวอร์ (server-side)

  4. การใช้ Environment Variables ในการกำหนดค่าใน Next.js:
    คุณสามารถใช้ Environment Variables เพื่อกำหนดค่าใน Next.js ตัวอย่างเช่นในการกำหนด URL ของ API หรือค่าต่างๆ ที่ต้องการในการเชื่อมต่อกับบริการอื่น ๆ ในโปรเจ็กต์ของคุณ

    1
    2
    // ตัวอย่างการใช้ Environment Variables ในการกำหนด URL ของ API
    const apiUrl = process.env.NEXT_PUBLIC_API_URL || 'default-api-url';

    การใช้ Environment Variables ช่วยให้คุณสามารถแยกแยะการกำหนดค่าสำหรับสภาพแวดล้อมต่าง ๆ เช่นการกำหนดค่าสำหรับระบบ development, production, staging, หรือการทดสอบได้ง่ายขึ้น และลดความยุ่งยากในการจัดการค่าต่าง ๆ ในโปรเจ็กต์ Next.js ของคุณ