Node.js สำหรับมือใหม่: รัน JavaScript บนคอมพิวเตอร์ของคุณ
เผยแพร่เมื่อ: 09 สิงหาคม 2025 | หมวดหมู่: JavaScript | โดย: GlowCode Team
Node.js คืออะไร?
Node.js คือเครื่องมือที่รัน JavaScript บนคอมพิวเตอร์ของคุณ ไม่ใช่แค่ในเบราว์เซอร์
ทำไมถึงควรเรียน?
- สร้างเซิร์ฟเวอร์และเว็บไซต์
- สร้างเครื่องมือที่รันบนคอมพิวเตอร์
- ใช้ JavaScript ทำทุกอย่าง (ไม่ใช่แค่หน้าเว็บ)
- บริษัทใหญ่ๆ อย่าง Netflix และ Uber ก็ใช้มัน
JavaScript ในเบราว์เซอร์:
document.getElementById('title');
JavaScript ใน Node.js:
// ไม่ต้องมีเบราว์เซอร์เลย!
ความต่างหลักๆ:
Browser JavaScript:
- รันในเบราว์เซอร์ของคุณ (Chrome, Firefox ฯลฯ)
- ใช้เพื่อควบคุมและเปลี่ยนแปลง HTML/CSS
- การเข้าถึงระบบไฟล์มีจำกัด (เพื่อความปลอดภัย)
- ไม่สามารถสร้างเซิร์ฟเวอร์ได้
Node.js:
- รันบนคอมพิวเตอร์ของคุณ (นอกเบราว์เซอร์)
- การเข้าถึงระบบไฟล์และโฟลเดอร์ได้อย่างสมบูรณ์
- สามารถใช้เพื่อสร้างและจัดการเซิร์ฟเวอร์
- ไม่มี DOM หรือ HTML ให้ควบคุม
ติดตั้ง Node.js ใน 2 นาที
ขั้น 1: ดาวน์โหลด
- ไปที่: https://nodejs.org
- คลิกปุ่มเขียวใหญ่ LTS
- รอดาวน์โหลด (50MB)
ขั้น 2: ติดตั้ง
- Windows: ดับเบิลคลิก .msi แล้วกด “Next” → “Next” → “Install”
- Mac: ดับเบิลคลิก .pkg แล้วทำตามคำสั่ง
- ใช้เวลา 1-2 นาที
ขั้น 3: เช็ค
เปิดเทอร์มินัล:
- Windows: กดปุ่ม Windows พิมพ์ cmd
- Mac: กด Cmd+Space พิมพ์ terminal
พิมพ์:
เช็ค npm (มาพร้อม Node):
รันไฟล์ JavaScript แรกของคุณ
ขั้น 1: สร้างโฟลเดอร์
- สร้างโฟลเดอร์ชื่อ my-node-app บน Desktop
ขั้น 2: สร้างไฟล์
- เปิด Notepad (Windows) หรือ TextEdit (Mac)
- พิมพ์:
console.log('Math works:', 5 + 3);
let name = 'Alex';
console.log('My name is', name);
function greet(person) {
return 'Hello, ' + person + '!';
}
console.log(greet('World'));
- เซฟเป็น app.js ในโฟลเดอร์ (ต้อง .js นะ ไม่ใช่ .txt)
ขั้น 3: รันมัน
รันไฟล์:
Output:
Hello from Node.js!
Math works: 8
My name is Alex
Hello, World!
🎉 You can now run JavaScript on your computer!
สร้างเซิร์ฟเวอร์แรกของคุณ
คิดเหมือนร้านอาหาร:
- เซิร์ฟเวอร์ = ครัว
- คำขอ = ลูกค้าสั่งอาหาร
- ตอบกลับ = ครัวส่งอาหาร
const server = http.createServer((request, response) => {
response.end('Hello from my server!');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000');
});
รันมัน:
เปิดเบราว์เซอร์ ไปที่: http://localhost:3000
เห็น: “Hello from my server!”
หยุดเซิร์ฟเวอร์: กด Ctrl+C
ทำให้ดีขึ้น – ส่ง HTML:
const server = http.createServer((request, response) => {
const html = `
<!DOCTYPE html>
<html>
<head>
<title>My Server</title>
<style>
body {
font-family: Arial;
text-align: center;
padding: 50px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
h1 { font-size: 48px; }
</style>
</head>
<body>
<h1>🚀 My First Server!</h1>
<p>Built with Node.js</p>
<p>Time: ${new Date().toLocaleTimeString()}</p>
</body>
</html>
`;
response.end(html);
});
server.listen(3000, () => {
console.log('Visit: http://localhost:3000');
});
โปรเจ็กต์: เซิร์ฟเวอร์เวลาโต้ตอบ
const server = http.createServer((request, response) => {
const now = new Date();
const hour = now.getHours();
// กำหนดช่วงเวลา อิโมจิ และสี
let period, emoji, bgColor, message;
if (hour < 12) {
period = 'Morning';
emoji = '🌅';
bgColor = '#FFE5B4';
message = 'Time for coffee!';
} else if (hour < 18) {
period = 'Afternoon';
emoji = '☀️';
bgColor = '#87CEEB';
message = 'Keep going!';
} else {
period = 'Evening';
emoji = '🌙';
bgColor = '#4A5568';
message = 'Time to relax!';
}
const html = `
<!DOCTYPE html>
<html>
<head>
<title>Time Server</title>
<meta http-equiv="refresh" content="1">
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: ${bgColor};
transition: background-color 1s;
}
.container {
text-align: center;
background: white;
padding: 50px;
border-radius: 20px;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.emoji { font-size: 80px; }
.time {
font-size: 48px;
font-weight: bold;
color: #2c3e50;
margin: 20px 0;
}
</style>
</head>
<body>
<div class="container">
<div class="emoji">${emoji}</div>
<h1>Good ${period}!</h1>
<div class="time">${now.toLocaleTimeString()}</div>
<p>${now.toLocaleDateString()}</p>
<p><em>${message}</em></p>
</div>
</body>
</html>
`;
response.end(html);
});
server.listen(3000, () => {
console.log('⏰ Time server running at http://localhost:3000');
});
คำถามที่พบบ่อย (FAQ)
Node.js กับ JavaScript ต่างกันยังไง?
JavaScript คือภาษา Node.js คือเครื่องมือที่รัน JavaScript บนคอมพิวเตอร์ (ไม่ใช่ในเบราว์เซอร์) คิดเหมือน: ภาษาอังกฤษคือภาษา และ Microsoft Word คือเครื่องมือเขียนภาษาอังกฤษ JavaScript = ภาษา Node.js = เครื่องมือรันมัน
ฉันต้องรู้ JavaScript เยอะก่อนไหม?
รู้พื้นฐานก็พอ ถ้าคุณรู้ตัวแปร ฟังก์ชัน ลูป และ console.log คุณพร้อมแล้ว คุณจะเรียน JavaScript เพิ่มขณะสร้างโปรเจ็กต์ Node.js อย่ารอให้ “พร้อม”—เริ่มสร้างเลย!
ทำไมคนชอบพูด “backend” หรือ “server-side”?
เว็บไซต์มีสองส่วน: frontend (ที่ผู้ใช้เห็นในเบราว์เซอร์) และ backend (เซิร์ฟเวอร์ที่เก็บข้อมูลและจัดการลอจิก) Node.js ใช้สำหรับ backend/server-side คำพวกนี้หมายถึงเดียวกัน: โค้ดที่รันบนเซิร์ฟเวอร์ ไม่ใช่ในเบราว์เซอร์ผู้ใช้
คุณสามารถสร้างเว็บไซต์จริงโดยใช้ Node.js เพียงอย่างเดียวได้หรือไม่?
ได้! แต่ส่วนใหญ่พัฒนาใช้เฟรมเวิร์กอย่าง Express.js (ทำให้ง่ายขึ้น) แทน Node.js เพียวๆ คิดเหมือน Node.js คือเครื่องยนต์ และ Express คือพวงมาลัยกับคันเร่ง คุณจะเรียน Express หลังจากเก่ง Node.js พื้นฐาน
Node.js แตกต่างจาก PHP หรือ Python อย่างไร?
ทั้งหมดทำงานเดียวกัน (สร้างเซิร์ฟเวอร์) แต่ Node.js ใช้ JavaScript ข้อดี: คุณใช้ภาษาเดียว (JavaScript) สำหรับ frontend และ backend PHP และ Python ต้องเรียนภาษาที่สอง หลายคนชอบความเรียบง่ายของการใช้ภาษาเดียวทำทุกอย่าง