การดู : 0

12/04/2026 18:17น.

JS2GO EP.26 การใช้ Environment Variables และ Configurations ใน Go และ Node.js

JS2GO EP.26 การใช้ Environment Variables และ Configurations ใน Go และ Node.js

#Environment Variables

#Configuration

#Go

#Node.js

#JS2GO

การจัดการ Configuration ของแอปพลิเคชันเป็นสิ่งสำคัญสำหรับความปลอดภัยและความยืดหยุ่น เช่น การจัดเก็บ API keys, database credentials หรือค่า settings ต่าง ๆ การใช้ Environment Variables เป็นวิธีที่ดีที่สุดในการจัดการ configuration โดยไม่เก็บข้อมูลสำคัญในโค้ด บทความนี้จะสอนวิธีการใช้งาน Environment Variables และ Configurations ใน Go และ Node.js พร้อมตัวอย่างโค้ดและแนวทางปฏิบัติที่เหมาะสม

 

1. Environment Variables ใน Node.js

 

Node.js สามารถเข้าถึง Environment Variables ผ่าน process.env

 

ตัวอย่าง: อ่าน Environment Variable

// สมมติว่าใน terminal เราตั้งค่า
// export PORT=3000

const port = process.env.PORT || 8080;
console.log(`Server will run on port: ${port}`);

 

ใช้ dotenv สำหรับ Configuration ไฟล์

// ติดตั้ง dotenv
// npm install dotenv

require('dotenv').config();

const port = process.env.PORT || 8080;
const dbUser = process.env.DB_USER;
const dbPassword = process.env.DB_PASSWORD;

console.log(`Connecting to DB as ${dbUser}`);

 

ข้อดี Node.js
✔️ เข้าถึงง่ายด้วย process.env
✔️ ใช้ .env file และ library เช่น dotenv ได้สะดวก
✔️ รองรับหลาย environment: development, staging, production

 

ข้อควรระวัง
⚠️ อย่า commit .env ขึ้น repository
⚠️ ตั้งค่า default สำหรับค่าที่สำคัญ

 

2. Environment Variables ใน Go

 

Go สามารถเข้าถึง Environment Variables ผ่าน package os

 

ตัวอย่าง: อ่าน Environment Variable

package main

import (
    "fmt"
    "os"
)

func main() {
    port := os.Getenv("PORT")
    if port == "" {
        port = "8080"
    }
    fmt.Println("Server will run on port:", port)
}

 

ใช้ไฟล์ Configuration และ Environment Variables

import (
    "fmt"
    "github.com/joho/godotenv"
    "os"
)

func main() {
    err := godotenv.Load(".env")
    if err != nil {
        fmt.Println("Error loading .env file")
    }

    dbUser := os.Getenv("DB_USER")
    dbPassword := os.Getenv("DB_PASSWORD")
    fmt.Printf("Connecting to DB as %s\n", dbUser)
}

 

ข้อดี Go
✔️ Type-safe เมื่อแปลงค่าเป็น integer, boolean ฯลฯ
✔️ ทำงานร่วมกับ system environment ได้ดี
✔️ รองรับหลาย environment ผ่านไฟล์ .env หรือ config structs

 

ข้อควรระวัง
⚠️ แปลงค่าที่ได้จาก environment เป็น type ที่ต้องการอย่างระมัดระวัง
⚠️ อย่าเก็บ credentials ลงในโค้ดโดยตรง

 

3. แนวทางปฏิบัติที่เหมาะสม

 

✔️ เก็บค่า sensitive เช่น API keys, passwords, DB credentials ใน environment variables
✔️ ตั้งค่า default สำหรับค่าที่สำคัญเพื่อป้องกัน error
✔️ ใช้ library สำหรับ config management

  • Node.js: dotenv, convict
  • Go: godotenv, viper
    ✔️ แยก config ตาม environment (development, staging, production)
    ✔️ อย่า commit .env หรือ secrets ลง repository

 


 

4. สรุปเปรียบเทียบ Go vs Node.js

 

FeatureNode.jsGo
Accessprocess.envos.Getenv()
Config Filesdotenvgodotenv, viper
Type Safety❌ No✔️ Yes (ต้องแปลงเอง)
Multiple EnvironmentSupportedSupported
RecommendedWeb app / rapid devBackend / server / type-safe

 

คำแนะนำ:
✔️ สำหรับ frontend / back-end web apps → ใช้ Node.js + dotenv
✔️ สำหรับ backend services / CLI / server → ใช้ Go + godotenv หรือ viper

 

ตอนต่อไป

 

ใน EP.27 ของซีรีส์ JS2GO เราจะพาคุณไปเรียนรู้ การทำ Logging: JavaScript vs Go เพื่อสร้างระบบบันทึกเหตุการณ์ในโค้ดอย่างมีประสิทธิภาพ และสามารถติดตามปัญหาใน production ได้อย่างมืออาชีพ

 

อ่านบทความ Series อื่นๆ

🔵 Facebook: https://www.facebook.com/superdev.academy.th

🔴 YouTube : Superdev Academy

📸 Instagram: Superdev Academy

🎬 TikTok: https://www.tiktok.com/@superdevacademy?lang=th-TH

🌐 Website: https://www.superdevacademy.com/