วิทยากร : พิชญา แสนคำ
บุคลากรสังกัดงานระบบสารสนเทศ
กองบริการเทคโนโลยีสารสนเทศและการสื่อสาร
มหาวิทยาลัยนเรศวร
รายละเอียดหลักสูตร
แนะนำ Node.js: Node.js คืออะไร? ทำไมถึงได้รับความนิยม?
• ความสามารถในการทำงาน Full-stack ด้วย JavaScript
• ระบบนิเวศ (Ecosystem) ที่แข็งแกร่ง (npm, packages)
• Non-blocking I/O และ Event-driven architecture
เปรียบเทียบ Node.js กับ Deno และ Bun
ความแตกต่างระหว่าง JavaScript ใน Browser และ Node.js Runtime
(Global object, Process, DOM)
Workshop 1.1: การติดตั้ง Node.js (LTS version) และ npm
• ตรวจสอบเวอร์ชั่น
• (แนะนำ) การใช้งาน NVM (Node Version Manager) เพื่อจัดการหลายเวอร์ชั่น
Variables, Data Types, Operators, Control Flow
Functions (Arrow functions)
Objects และ Arrays
Asynchronous JavaScript:
• Callbacks
• Promises (resolve, reject, .then, .catch)
• Async/Await (try/catch) (อ้างอิง)
Workshop 1.2: ฝึกเขียน JavaScript แบบ Asynchronous
การใช้ REPL (Read-Eval-Print Loop)
การรันไฟล์ JavaScript ด้วย Node.js (node <filename.js>)
แนะนำการใช้ nodemon สำหรับ auto-reload
Modules ใน Node.js:
• CommonJS (CJS): require(), module.exports
• ES Modules (ESM): import, export (ภาพรวมและความแตกต่าง)
การทำงานกับ File System (fs module เบื้องต้น: readFile, writeFile)
Workshop 1.3: สร้างโปรแกรมอ่านเขียนไฟล์ง่ายๆ
package.json: ความสำคัญและการใช้งาน (npm init -y)
package-lock.json
การติดตั้ง dependencies (npm install <package-name>) และ devDependencies
Scripts ใน package.json (เช่น start, dev)
Express.js คืออะไร? ทำไมต้องใช้ Express.js?
Workshop 2.1: สร้างโปรเจค Express.js แรก
• ติดตั้ง Express (npm install express)
• สร้าง Server ง่ายๆ (Hello World)
Routing ใน Express.js:
• Basic routing (app.METHOD(PATH, HANDLER))
• Route parameters (req.params)
• Query strings (req.query)
Workshop 2.2: สร้าง Routes สำหรับ GET requests แบบต่างๆ
Middleware คืออะไร? หลักการทำงาน
Built-in middleware: express.json(), express.urlencoded()
Third-party middleware (เช่น morgan สำหรับ logging)
Custom middleware
Workshop 2.3: การใช้งาน Middleware สำหรับรับข้อมูล JSON และ Logging
การใช้ HTTP methods: GET, POST, PUT, DELETE
การรับข้อมูลจาก Request body (req.body)
การส่ง JSON responses (res.json()), status codes (res.status())
Workshop 3.1: สร้าง API endpoints สำหรับรับและส่งข้อมูล (In-memory data)
ภาพรวมการเชื่อมต่อฐานข้อมูลกับ Node.js
การติดตั้ง mysql2/promise
Workshop 3.2: เชื่อมต่อ Express.js กับ MySQL
• ตั้งค่าการเชื่อมต่อ (Connection Pool)
• เขียนฟังก์ชันสำหรับการ query ข้อมูล (ใช้ async/await)
การทำ CRUD operations ใน Express.js:
• Create (POST)
• Read (GET - all, GET - by ID)
• Update (PUT/PATCH)
• Delete (DELETE)
Workshop 3.3: สร้าง RESTful API สำหรับจัดการข้อมูลสินค้า/ผู้ใช้ (CRUD)
ที่เชื่อมต่อกับ MySQL
Basic error handling
Custom error handling middleware (next(err))
แนวคิดเรื่อง Authentication vs Authorization
Session-based authentication
การใช้ express-session:
• ติดตั้งและตั้งค่า
• การเก็บข้อมูล user ใน session
Workshop 4.1: สร้างระบบล็อกอิน (Login)
• สร้างฟอร์ม Login (HTML ง่ายๆ หรือทดสอบผ่าน Postman)
• ตรวจสอบ username/password (เทียบกับข้อมูลใน DB)
• เก็บข้อมูล user ใน session หลัง login สำเร็จ
การสร้าง Middleware เพื่อป้องกัน Route (Protected Routes)
การ Logout
การ Hashing Passwords ด้วย bcrypt
Workshop 4.2:
• สร้างหน้า Dashboard ง่ายๆ ที่แสดงข้อมูลสำหรับ user ที่ login แล้วดึงข้อมูลจาก session/database
• การเน้น API ทดสอบ API endpoints ทั้งหมดด้วย Postman หรือ VS Code REST Client
• การใช้ Template Engine (เช่น EJS) เบื้องต้นเพื่อแสดงผล
ภาพรวมการ Debugging Node.js Application (VS Code Debugger)
ภาพรวมการ Deploy Node.js Application (Hosting, Environment Variables, PM2)
แหล่งข้อมูลเพิ่มเติมสำหรับศึกษาต่อ (W3Schools, Node.js docs, etc.)
Q&A
ความรู้พื้นฐานของผู้เข้ารับการอบรม
• มีความเข้าใจพื้นฐานของ JavaScript (Variables, Data Types, Functions, Control Flow, ES6+ syntax
เช่น Arrow Functions, let/const จะเป็นประโยชน์)
• มีความคุ้นเคยกับการใช้ Command Line Interface (CLI) หรือ Terminal
• มีความรู้พื้นฐาน HTML และ CSS หากต้องการเห็นผลลัพธ์บนหน้าเว็บ
• มีความเข้าใจเบื้องต้นเกี่ยวกับ HTTP Protocol (Request/Response, Methods)
• มีความเข้าใจเบื้องต้นเกี่ยวกับการทำงานของฐานข้อมูลเชิงสัมพันธ์ (Relational Database) และ SQL
โปรแกรมที่ใช้ในการอบรม
• Node.js: LTS version ล่าสุด
• npm: มาพร้อมกับ Node.js
• Text Editor/IDE: Visual Studio Code (แนะนำ) พร้อม Extensions ที่เกี่ยวข้อง (เช่น ESLint, Prettier)
• Web Browser: Google Chrome, Firefox, หรือ Edge (เวอร์ชั่นล่าสุด)
• Database: MySQL Server และ MySQL Client (เช่น MySQL Workbench, DBeaver, หรือ Command Line Client)
• (Optional) NVM (Node Version Manager): สำหรับจัดการ Node.js versions
• (Optional) Postman หรือ VS Code REST Client: สำหรับทดสอบ API
• (Optional) Git: สำหรับ Version Control
เอกสารประกอบการอบรม
-
* หลักสูตรสำหรับผู้ดูแลระบบเครือข่าย และ Programmer เท่านั้น