Node.js คืออะไร?
Node.js เป็น JavaScript runtime ที่ทำให้เราสามารถรัน JavaScript บนเครื่องเซิร์ฟเวอร์ได้ โดยใช้ V8 JavaScript engine ของ Google Chrome เป็นตัวประมวลผล ทำให้มีประสิทธิภาพสูงและเหมาะสำหรับการพัฒนาแอปพลิเคชันที่ต้องการการตอบสนองแบบ real-time
การติดตั้ง Node.js
- ดาวน์โหลด Node.js จาก https://nodejs.org
- ติดตั้งตามขั้นตอนปกติ
- ตรวจสอบการติดตั้งด้วยคำสั่ง:
node --version npm --version
การเขียนโปรแกรม Node.js เบื้องต้น
1. Hello World
// hello.js
console.log("Hello, World!");
// รันด้วยคำสั่ง: node hello.js
2. การสร้างเว็บเซิร์ฟเวอร์พื้นฐาน
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
3. การใช้งาน Express Framework
const express = require('express');
const app = express();
// Middleware สำหรับ parsing JSON
app.use(express.json());
// Route พื้นฐาน
app.get('/', (req, res) => {
res.send('Hello from Express!');
});
// Route รับข้อมูลผู้ใช้
app.get('/users', (req, res) => {
const users = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' }
];
res.json(users);
});
// เริ่มต้น server
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
4. การจัดการไฟล์ (File System)
const fs = require('fs');
// อ่านไฟล์แบบ Sync
try {
const data = fs.readFileSync('input.txt', 'utf8');
console.log(data);
} catch (err) {
console.error('Error reading file:', err);
}
// อ่านไฟล์แบบ Async
fs.readFile('input.txt', 'utf8', (err, data) => {
if (err) {
console.error('Error reading file:', err);
return;
}
console.log(data);
});
// เขียนไฟล์
fs.writeFile('output.txt', 'Hello Node.js!', 'utf8', (err) => {
if (err) {
console.error('Error writing file:', err);
return;
}
console.log('File has been written');
});
5. การใช้งาน Promise และ Async/Await
// สร้างฟังก์ชัน Promise
const getData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
const data = { id: 1, name: 'John' };
resolve(data);
// หรือถ้ามีข้อผิดพลาด: reject(new Error('Something went wrong'));
}, 1000);
});
};
// ใช้งาน Promise แบบ .then()
getData()
.then(data => console.log(data))
.catch(err => console.error(err));
// ใช้งาน async/await
async function fetchData() {
try {
const data = await getData();
console.log(data);
} catch (err) {
console.error(err);
}
}
6. การสร้าง REST API ด้วย Express
const express = require('express');
const app = express();
app.use(express.json());
let users = [
{ id: 1, name: 'John', email: '[email protected]' },
{ id: 2, name: 'Jane', email: '[email protected]' }
];
// GET all users
app.get('/api/users', (req, res) => {
res.json(users);
});
// GET user by id
app.get('/api/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ message: 'User not found' });
res.json(user);
});
// POST new user
app.post('/api/users', (req, res) => {
const user = {
id: users.length + 1,
name: req.body.name,
email: req.body.email
};
users.push(user);
res.status(201).json(user);
});
// PUT update user
app.put('/api/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).json({ message: 'User not found' });
user.name = req.body.name;
user.email = req.body.email;
res.json(user);
});
// DELETE user
app.delete('/api/users/:id', (req, res) => {
const userIndex = users.findIndex(u => u.id === parseInt(req.params.id));
if (userIndex === -1) return res.status(404).json({ message: 'User not found' });
users.splice(userIndex, 1);
res.json({ message: 'User deleted' });
});
7. การจัดการกับฐานข้อมูล (MongoDB Example)
const mongoose = require('mongoose');
// เชื่อมต่อ MongoDB
mongoose.connect('mongodb://localhost/mydatabase', {
useNewUrlParser: true,
useUnifiedTopology: true
});
// สร้าง Schema
const userSchema = new mongoose.Schema({
name: String,
email: String,
createdAt: { type: Date, default: Date.now }
});
// สร้าง Model
const User = mongoose.model('User', userSchema);
// สร้างข้อมูล
async function createUser() {
try {
const user = new User({
name: 'John Doe',
email: '[email protected]'
});
const result = await user.save();
console.log(result);
} catch (err) {
console.error(err);
}
}
// ค้นหาข้อมูล
async function findUsers() {
try {
const users = await User.find();
console.log(users);
} catch (err) {
console.error(err);
}
}
การจัดการ Package ด้วย npm
การสร้างโปรเจค
npm init
การติดตั้ง Package
# ติดตั้ง package สำหรับโปรเจค npm install express # ติดตั้ง package สำหรับ development npm install nodemon --save-dev
ตัวอย่าง package.json
{
"name": "my-node-app",
"version": "1.0.0",
"description": "My first Node.js application",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
},
"dependencies": {
"express": "^4.17.1",
"mongoose": "^5.12.3"
},
"devDependencies": {
"nodemon": "^2.0.7"
}
}
แนวทางการพัฒนาที่ดี
- แบ่งโค้ดเป็นโมดูล
// users.js
module.exports = {
getUsers() {
// logic here
},
createUser(userData) {
// logic here
}
};
// app.js
const users = require('./users');
2. ใช้ Environment Variables
// .env
PORT=3000
MONGODB_URI=mongodb://localhost/mydatabase
// app.js
require('dotenv').config();
const port = process.env.PORT || 3000;
3. จัดการ Error อย่างเหมาะสม
process.on('uncaughtException', (err) => {
console.error('Uncaught Exception:', err);
process.exit(1);
});
// Middleware จัดการ Error
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
![]()






Leave a Reply