Environment Variables เป็นส่วนสำคัญของกระบวนการพัฒนาซอฟต์แวร์ที่มุ่งเน้นไปที่ความปลอดภัยและประสิทธิภาพของแอปพลิเคชัน การใช้ Environment Variables ไม่ได้มีประโยชน์เฉพาะแค่จัดการข้อมูลที่ต้องการให้เป็นความลับเท่านั้น แต่ยังเป็นหนึ่งในเครื่องมือสำคัญที่ช่วยให้เราสามารถป้องกันการรั่วไหลของข้อมูลและการโจมตีจากผู้ไม่หวังดีได้อย่างมีประสิทธิภาพ อีกทั้งยังช่วยลดความซับซ้อนในการจัดการกับข้อมูลอีกด้วย
Environment Variables คืออะไร?
Environment Variables เป็นตัวแปรที่ถูกกำหนดไว้ในระบบปฏิบัติการหรือเซิร์ฟเวอร์ที่รันแอปพลิเคชันของเรา โดยมักใช้สำหรับเก็บข้อมูลที่เป็นความลับ เช่น รหัสผ่านฐานข้อมูล, คีย์ API, หรือการตั้งค่าอื่น ๆ ที่เราไม่ต้องการให้เผยแพร่แก่ผู้ใช้งานหรือผู้ไม่หวังดี
ประโยชน์ของ Environment Variables
- ความปลอดภัย: Environment Variables ช่วยลดความเสี่ยงในการเปิดเผยข้อมูลที่เป็นความลับ เนื่องจากข้อมูลเหล่านี้จะไม่ถูกเก็บในโค้ดของแอปพลิเคชันโดยตรง
- ความยืดหยุ่น: การใช้ Environment Variables ช่วยให้โปรแกรมสามารถทำงานในสภาพแวดล้อมที่ต่างกันไปได้อย่างยืดหยุ่น และไม่ติดขัด
- การดูแลรักษา: โดยการใช้ Environment Variables เราสามารถแยกการกำหนดค่าจากโค้ดของแอปพลิเคชัน ทำให้การดูแลรักษาและการปรับปรุงโปรแกรมเป็นไปอย่างมีประสิทธิภาพ
การใช้ Environment Variables ใน Node.js
เราจะมาทดสอบการใช้ Environment Variables โดยการจำลองข้อมูลการเชื่อมต่อ Database โดยจะใช้ข้อมูล 3 ส่วนคือ
- DB_HOST
- DB_USER
- DB_PASSWORD
ใน Node.js เราสามารถเข้าถึง Environment Variables ได้โดยใช้โมดูล process.env ซึ่งเป็นอ็อบเจกต์ที่เก็บค่าของ Environment Variables ทั้งหมด โดยที่ dotenv เป็นโมดูลที่ช่วยในการโหลด Environment Variables จากไฟล์ .env ในโปรเจ็กต์
เราจะเริ่มต้นจากการติดตั้งโมดูล dotenv ในโปรเจกต์ Node.js ก่อน สำหรับใครที่ยังไม่ได้ติดตั้ง node.js สามารถดูวิธีการติดตั้งได้ที วิธีการติดตั้ง Node.js ในหัวข้อ การติดตั้ง Node.js และ NPM
ติดตั้ง dotenv โดยใช้คำสั่ง :
npm install dotenv
หลังจากนั้น, ให้สร้างไฟล์ .env ในโปรเจ็กต์ของคุณและกำหนดค่า Environment Variables ของคุณตามนี้:
DB_HOST=localhost
DB_USER=myuser
DB_PASS=mypassword
จากนั้นมาลองทดสอบการใช้งาน dotenv โดยใส่คำสั่งเหล่านี้ลงไปในไฟล์เซิร์ฟเวอร์ และรันเซิร์ฟเวอร์ของคุณ
const http = require('http')
require('dotenv').config();
const server = http.createServer()
const dbHost = process.env.DB_HOST;
const dbUser = process.env.DB_USER;
const dbPassword = process.env.DB_PASS;
console.log(`Database Host: ${dbHost}`);
console.log(`Database User: ${dbUser}`);
console.log(`Database User: ${dbPassword}`);
server.listen(3000, () => {
console.log(`Server is running on port 3000`);
});
ผลลัพธ์จากการ console.log คือ
Database Host: localhost
Database User: myuser
Database User: mypassword
จะเห็นว่าเราสามารถดึงเอาค่าต่างๆจากไฟล์ .env มาใช้ได้โดยที่เราไม่จำเป็นต้องใส่ค่าจริงๆลงไป ซึ่งเราจะใช้ Environment Variables แทนค่านั้นๆได้เลย ทำให้โค๊ดของเราปลอดภัยยิ่งขึ้น
สรุป
Environment Variables เป็นเครื่องมือสำคัญในการพัฒนาซอฟต์แวร์ที่ช่วยให้เราจัดการข้อมูลที่เป็นความลับและป้องกันการรั่วไหลของข้อมูล ใน Node.js เราสามารถใช้โมดูล dotenv เพื่อเข้าถึง Environment Variables ได้โดยตรง โดยใช้ dotenv เพื่อโหลด Environment Variables จากไฟล์ .env ในโปรเจ็กต์ของเรา การใช้ Environment Variables ช่วยเพิ่มความยืดหยุ่นและปลอดภัยให้กับโค๊ดของเรา ทำให้มีประสิทธิภาพมากยิ่งขึ้นโดยไม่ต้องเปิดเผยข้อมูลที่เป็นความลับในโค้ดของเรา การใช้ Environment Variables ช่วยให้การพัฒนาและการดูแลรักษาโปรแกรมเป็นไปอย่างมีประสิทธิภาพและเป็นระบบ