12/04/2026 18:17น.

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
| Feature | Node.js | Go |
|---|---|---|
| Access | process.env | os.Getenv() |
| Config Files | dotenv | godotenv, viper |
| Type Safety | ❌ No | ✔️ Yes (ต้องแปลงเอง) |
| Multiple Environment | Supported | Supported |
| Recommended | Web app / rapid dev | Backend / 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/