โค้ดดิ้ง
สร้าง backend server บนเครื่อง Windows และใช้งานในวง LAN ได้
หากต้องการสร้างหลายๆ เว็บไซต์และต้องการแยกแต่ละเว็บไซต์ให้อยู่ในโฟลเดอร์ที่ชัดเจน สามารถทำได้โดยการสร้างโฟลเดอร์แยกแต่ละโปรเจกต์ หรือแต่ละเว็บไซต์ออกจากกัน วิธีนี้จะทำให้คุณสามารถจัดการเว็บแต่ละอันได้ง่ายขึ้น
การจัดโครงสร้างโฟลเดอร์สำหรับหลายๆ เว็บไซต์:
สมมติว่าคุณต้องการมี 3 เว็บไซต์ ชื่อ website1
, website2
, และ website3
คุณสามารถสร้างโครงสร้างโฟลเดอร์แบบนี้ได้:
C:\
├── websites\
│ ├── website1\
│ │ ├── server.js
│ │ ├── public\
│ │ └── (อื่นๆ)
│ ├── website2\
│ │ ├── server.js
│ │ ├── public\
│ │ └── (อื่นๆ)
│ └── website3\
│ ├── server.js
│ ├── public\
│ └── (อื่นๆ)
ขั้นตอนการสร้างโฟลเดอร์และโปรเจกต์:
1. สร้างโฟลเดอร์โปรเจกต์สำหรับแต่ละเว็บไซต์:
- เปิด Command Prompt หรือ PowerShell แล้วใช้คำสั่งดังนี้:
mkdir C:\websites\website1
mkdir C:\websites\website2
mkdir C:\websites\website3
2. สร้างโปรเจกต์สำหรับแต่ละเว็บไซต์ด้วย Express.js:
- เข้าไปในแต่ละโฟลเดอร์ของเว็บไซต์แล้วสร้างโปรเจกต์ Express.js
cd C:\websites\website1
npm init -y
npm install express
ทำเหมือนกันสำหรับ website2
และ website3
3. แก้ไขไฟล์ server.js
สำหรับแต่ละเว็บไซต์:
- เข้าไปในแต่ละโฟลเดอร์ แล้วสร้างไฟล์
server.js
ขึ้นมา ตัวอย่างโค้ดสำหรับwebsite1
:
const express = require('express');
const app = express();
const path = require('path');
const port = 3001; // ใช้ port ที่ต่างกัน เช่น 3001 สำหรับ website1
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
app.listen(port, '0.0.0.0', () => {
console.log(`Website 1 is running on http://localhost:${port}`);
});
ทำการสร้างไฟล์ server.js
แบบนี้ใน website2
และ website3
ด้วย แต่ให้เปลี่ยน port ของแต่ละเว็บไซต์ เช่น website2
ใช้ port 3002
และ website3
ใช้ port 3003
4. เพิ่มหน้าเว็บด้วย React.js (หรือ Frontend อื่นๆ):
- สร้างโปรเจกต์ React สำหรับแต่ละเว็บไซต์ แล้ว build เสร็จให้เอาไฟล์จากโฟลเดอร์
build
ไปใส่ในโฟลเดอร์public
ของแต่ละเว็บไซต์
cd C:\websites\website1
npx create-react-app my-app
cd my-app
npm run build
เอาไฟล์จาก my-app/build
(หรือ my-app/dist) ไปไว้ใน C:\websites\website1\public
5. รันหลายเว็บไซต์พร้อมกัน:
- รันเว็บไซต์แต่ละอันโดยการเปิด Command Prompt หรือ PowerShell หลายหน้าต่าง แล้วเข้าไปในแต่ละโฟลเดอร์ แล้วรันคำสั่ง:
node server.js
เมื่อรันแล้ว คุณจะสามารถเข้าถึงเว็บไซต์ได้ดังนี้:
website1
:http://<Your_IP>:3001
website2
:http://<Your_IP>:3002
website3
:http://<Your_IP>:3003
สรุป:
- สร้างโฟลเดอร์แยกสำหรับแต่ละเว็บไซต์ เช่น
website1
,website2
, และwebsite3
- สร้างโปรเจกต์ Express.js สำหรับแต่ละเว็บไซต์ และตั้งค่า port ต่างกัน
- เพิ่มหน้าเว็บที่สร้างจาก React หรือ Frontend อื่น ๆ ในแต่ละโฟลเดอร์
- รันเว็บไซต์แต่ละอันพร้อมกัน โดยใช้ Command Prompt หลายหน้าต่าง
วิธีนี้จะช่วยให้คุณสามารถจัดการเว็บไซต์หลายเว็บได้ง่าย และใช้งานพร้อมกันในวง LAN ได้