강의

멘토링

로드맵

NEW
Programming

/

Back-end

Xây dựng Server Framework từ đầu: Sao chép Engine Express.js

Khóa học này không chỉ đơn thuần sử dụng Express.js. Bạn sẽ xây dựng lại engine bên trong của nó từ đầu đến cuối, có được trải nghiệm thực tế với các nguyên lý thực sự về cách một server hoạt động. Bằng cách trực tiếp tạo ra từng thành phần của Express—như routing, middleware, request–response objects, xử lý static file, và template rendering—bạn sẽ phát triển như một server developer và thực sự hiểu cách một framework hoạt động ở cốt lõi.

4 học viên đang tham gia khóa học này

  • nhcodingstudio
실습 중심
백엔드
서버
웹개발
서버개발
JavaScript
Node.js
Express
backend
frontend

Dịch cái này sang tiếng Việt

  • Hiểu các nguyên lý cốt lõi của kiến trúc web server bằng cách triển khai Express.js từ đầu

  • Xây dựng lại toàn bộ kiến trúc Express.js để hiểu đầy đủ cách thức hoạt động của nó

  • Cách chuỗi middleware và hàm next() truyền các yêu cầu và duy trì luồng điều khiển

  • Phân tích cấu trúc về cách các đối tượng request (req) và response (res) được cấu thành và truyền tải

  • Triển khai máy chủ tệp tĩnh một cách an toàn

  • Xây dựng logic dựa trên stream để phân tích cú pháp JSON và các request body được mã hóa URL một cách trực tiếp

  • Thiết kế một router RESTful và xây dựng các API CRUD đầy đủ

  • Tách router thành các module riêng biệt và kết nối chúng với ứng dụng chính, giống như express.Router()

  • Tích hợp công cụ template EJS để render HTML động

  • Triển khai một cấu trúc để xử lý an toàn cả lỗi đồng bộ và bất đồng bộ trong chuỗi middleware

  • Xác minh và thực hiện kiểm thử tích hợp toàn bộ máy chủ bằng các script kiểm thử API tự động

🚀 Từ "User" đến "Builder" – Học các nguyên lý cốt lõi của phát triển server bằng cách clone Express.js

Khóa học này là một hành trình mà chúng ta sẽ trực tiếp sao chép engine của Express.js, một trong những server framework được sử dụng rộng rãi nhất trong hệ sinh thái web, và triển khai từng bước hoạt động nội bộ của nó.

Tôi vẫn nhớ khi lần đầu học Node.js và Express. Chỉ với một dòng đơn giản như app.get() hay app.use(), tôi có thể dễ dàng thiết lập routing, middleware, xử lý file tĩnh và template rendering. Cảm giác thật kỳ diệu. Nhưng đến một lúc nào đó, một câu hỏi nảy sinh trong đầu: "Liệu tôi có thực sự là người biết cách xây dựng điều này, hay chỉ là người biết cách sử dụng nó?"

Express rất tiện lợi, nhưng sự tiện lợi đó thường che giấu cấu trúc bên trong của nó, khiến việc hiểu cách nó thực sự hoạt động trở nên khó khăn. Khóa học này được tạo ra để lấp đầy khoảng trống đó.

Hệ thống định tuyến được thiết kế như thế nào? Tại sao middleware được thực thi theo trình tự? Làm thế nào để xác định các loại MIME cho các tệp tĩnh? Bản chất của khóa học này là trả lời tất cả những câu hỏi này thông qua việc triển khai trực tiếp và thực hành.

Bằng cách tự xây dựng Express, bạn sẽ vượt xa việc chỉ "biết Express" và có được trực giác nền tảng về phát triển server giúp bạn hiểu một cách tự nhiên cấu trúc của các framework khác như Fastify, Flask, Django, và Spring Boot.

Đây không chỉ là về việc biết cách sử dụng một framework. Đây là về việc trưởng thành thành người có thể thiết kế và triển khai cách thức hoạt động của một server. Hãy cùng bắt đầu hành trình này—từng bước một, cho đến khi bạn không chỉ là người sử dụng, mà là một người xây dựng thực thụ.

👉 Tính năng chính của khóa học này

📌 Một khóa học dựa trên dự án nơi bạn sao chép engine Express.js và tự triển khai tất cả các cấu trúc cốt lõi
📌 Không có lý thuyết trừu tượng—mọi nguyên lý đều được trực quan hóa và giải thích từng dòng code
📌 Bao gồm các triển khai thực tế như xử lý file tĩnh an toàn và quản lý lỗi mạnh mẽ
📌 Đi kèm với tất cả tài liệu bài giảng và script kiểm tra, để bạn có thể chạy và thực hành mọi thứ một cách độc lập
📌 Giúp bạn phát triển thành một developer có thể xây dựng một server framework, không chỉ sử dụng nó


👉 Khóa học này dành cho ai

  • Các nhà phát triển muốn vượt ra ngoài việc chỉ sử dụng Express.js và phát triển lên cấp độ tiếp theo

  • Các nhà phát triển backend đầy tham vọng muốn hiểu sâu về nội bộ máy chủ

  • Những người học muốn triển khai và học các khái niệm cấu trúc của một web framework

  • Những người tìm việc đang tìm kiếm một dự án clone có ý nghĩa để thêm vào portfolio của họ

  • Các nhà phát triển có kinh nghiệm với Django, Flask, hoặc Spring Boot muốn học kiến trúc máy chủ Node.js

  • Những người muốn trở thành lập trình viên có thể giải thích cách thức hoạt động, không chỉ sử dụng chúng

  • Các nhà phát triển Frontend muốn hiểu rõ hơn về luồng dữ liệu giữa server và client

  • Người mới bắt đầu mong muốn xây dựng cấu trúc backend của riêng mình thay vì chỉ học thuộc lòng các hàm

  • Những người chuyển nghề không có bằng khoa học máy tính muốn có được nền tảng vững chắc trong phát triển web

  • Các nhà phát triển Frontend hoặc full-stack muốn sử dụng JavaScript sâu hơn trong các dự án backend


Những gì bạn sẽ học được

Thiết kế hàm createApplication

Xây dựng cấu trúc controller cốt lõi tạo thành điểm vào của đối tượng app, bao gồm kho lưu trữ cài đặt, router và đăng ký middleware. Điều này đảm bảo rằng một instance app duy nhất có thể điều khiển toàn bộ server.

Triển khai Chuỗi Middleware

Triển khai luồng thực thi tuần tự của middleware bằng cách sử dụng next(), trực quan hóa cách mỗi middleware chặn và xử lý các yêu cầu, đồng thời hiểu được kiến thức nền tảng—được giải thích bằng phép so sánh với quy trình khám sức khỏe tại bệnh viện.

Xây dựng Static File Server
Sử dụng
fs.createReadStream() để stream các file, tự động phát hiện MIME types cho header Content-Type, và bảo mật server chống lại các cuộc tấn công path traversal bằng cách thêm logic an toàn.

Tạo JSON và URL-Encoded Body Parsers

Nhận các body của HTTP request dưới dạng streams, tích lũy dữ liệu dần dần bằng cách sử dụng các sự kiện dataend, sau đó thực hiện phân tích JSON hoặc giải mã URL để xây dựng middleware phân tích body hoàn chỉnh.

Thiết kế Router và Xử lý Dynamic Routes

Triển khai khớp mẫu URL như GET /users/:id, đặt các giá trị được trích xuất vào req.params, và hiểu đầy đủ luồng thực thi handler dựa trên đường dẫn tại cốt lõi của routing.

Xây dựng Middleware Xử lý Lỗi
Triển khai middleware bốn tham số (err, req, res, next), bắt lỗi đồng bộ với try...catch, và an toàn bắt lỗi bất đồng bộ với Promise.reject() để thiết lập luồng xử lý lỗi thống nhất.

Triển khai Render Template
Tích hợp engine template EJS, triển khai phương thức
res.render() và trải nghiệm quy trình hoàn chỉnh của server-side rendering bằng cách tạo HTML động từ server.

Tái tạoexpress.Router() Chức năng

Triển khai một createRouter() function để tạo các sub-router instances và kết nối chúng theo cấu trúc phân cấp với main app, cho phép quản lý modular các cấu trúc API quy mô lớn.

Cải thiện Kiến trúc

Áp dụng mẫu Singleton và IIFE để ngăn chặn chia sẻ trạng thái toàn cục, ẩn cài đặt và các module nội bộ, đồng thời tăng cường bảo mật. Tái cấu trúc bằng cách tích hợp middleware và tách biệt các mối quan tâm, tạo ra một engine có khả năng bảo trì và mở rộng trong thực tế.

Tự động hóa kiểm thử API

Sử dụng http.request() để gửi các yêu cầu thực tế đến máy chủ, phân tích nội dung phản hồi và ghi lại kết quả với mã trạng thái, xây dựng các script kiểm thử tự động để đảm bảo tính ổn định và độ tin cậy.

Trước Khi Bạn Bắt Đầu

Điều kiện tiên quyết và Ghi chú

  • Bạn nên đã quen thuộc với cú pháp JavaScript cơ bản. Điều này bao gồm khai báo biến, định nghĩa hàm, thao tác với mảng/đối tượng, và xử lý bất đồng bộ với Promises.

  • Hiểu biết cơ bản về môi trường Node.js và hệ thống module (như CommonJS) sẽ rất hữu ích. Biết cách chạy một server cục bộ và cách requiremodule.exports hoạt động sẽ làm cho quá trình này dễ dàng hơn.

  • Kinh nghiệm sử dụng Express.js trước đây sẽ giúp bạn nắm bắt các khái niệm nhanh hơn nhiều. Tuy nhiên, khóa học này không tập trung vào việc sử dụng mà vào việc xây dựng lại và hiểu rõ các cơ chế bên trong.

  • Lưu ý: khóa học này không cung cấp mã hoàn chỉnh hoặc các gói đã được xây dựng sẵn. Thay vào đó, bạn sẽ triển khai mọi thứ từng bước một, tự viết mã để hiểu đầy đủ cấu trúc và nguyên lý.

  • Khuyến nghị nên học "Mastering Express.js: Part 1 – From Basics to Advanced [Beginner Track]" trước, nơi đề cập đến cấu trúc nền tảng và cách sử dụng Express.js. Khóa học này xây dựng dựa trên kiến thức đó và tập trung vào việc triển khai kiến trúc nội bộ như một track nâng cao.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Các nhà phát triển muốn vượt ra khỏi việc chỉ sử dụng Express.js và phát triển lên cấp độ tiếp theo

  • Các nhà phát triển backend đầy tham vọng muốn hiểu sâu sắc cách thức hoạt động bên trong của máy chủ

  • Những người học muốn triển khai và tìm hiểu các khái niệm cấu trúc của một web framework

  • Những người tìm việc đang tìm kiếm một dự án clone có ý nghĩa để trưng bày trong portfolio của họ

  • Các nhà phát triển có kinh nghiệm với các framework khác như Django, Flask, hoặc Spring Boot muốn hiểu kiến trúc máy chủ Node.js

  • Những người muốn trở thành developer có thể giải thích cách thức hoạt động của mọi thứ, không chỉ biết sử dụng chúng

  • Các nhà phát triển Frontend muốn hiểu rõ hơn về luồng dữ liệu giữa server và client trong phát triển web

  • Những người mới bắt đầu muốn vượt qua việc "chỉ ghi nhớ các hàm" và trải nghiệm xây dựng cấu trúc backend của riêng mình

  • Những người chuyển đổi nghề nghiệp không có bằng khoa học máy tính muốn xây dựng nền tảng vững chắc trong phát triển web

  • Các nhà phát triển Frontend hoặc full-stack muốn sử dụng JavaScript sâu hơn trong các dự án backend thực tế

Cần biết trước khi bắt đầu?

  • Cú pháp JavaScript cơ bản

  • Kinh nghiệm với Node.js

  • Kinh nghiệm với Express.js (tùy chọn)

  • Kiến thức về mạng và các khái niệm HTTP (tùy chọn)

Xin chào
Đây là

251

Học viên

11

Đánh giá

4.6

Xếp hạng

11

Các khóa học

안녕하세요, 우리동네코딩 스튜디오에 오신 것을 환영합니다!

우리동네코딩 스튜디오는 카네기 멜론, 워싱턴, 토론토, 워터루 등 북미의 주요 대학에서 컴퓨터공학을 전공하고, Google, Microsoft, Meta 등 글로벌 IT 기업에서 실무 경험을 쌓은 개발자들이 함께 만든 교육 그룹입니다.

처음에는 미국과 캐나다의 컴퓨터공학 전공자들끼리 함께 공부하며 성장하고자 만든 스터디 모임에서 시작되었습니다. 각기 다른 대학, 다른 시간대에 있었지만 함께 문제를 해결하고 서로에게 배운 그 시간은 매우 특별했고, 자연스럽게 이런 생각이 들었습니다.

“우리가 공부하던 이 방식, 그대로 다른 사람에게도 전하면 어떨까?”

그 물음이 바로 우리동네코딩 스튜디오의 출발점이었습니다.

현재는 약 30명의 현직 개발자와 컴퓨터공학 전공 대학생들이 각자의 전문 분야를 맡아, 입문부터 실전까지 아우르는 커리큘럼을 직접 설계하고 강의합니다. 단순한 지식 전달을 넘어, 진짜 개발자의 시선으로 배우고 함께 성장할 수 있는 환경을 제공합니다.

“진짜 개발자는, 진짜 개발자에게 배워야 합니다.”

저희는 웹 개발의 전 과정을 처음부터 끝까지 체계적으로 다루되, 이론에 머무르지 않고 실습과 실전 중심의 피드백을 통해 실력을 키워드립니다.
수강생 한 사람, 한 사람의 성장을 함께 고민하고 이끌어가는 것이 우리의 철학입니다.

🎯 우리의 철학은 분명합니다.
"진정한 배움은 실천에서 오고, 성장은 함께할 때 완성된다."

개발을 처음 시작하는 입문자부터, 실무 능력을 키우고 싶은 취업 준비생, 진로를 탐색 중인 청소년까지.
우리동네코딩 스튜디오는 모두의 출발점이자, 함께 걷는 든든한 동반자가 되고자 합니다.

이제, 혼자 고민하지 마세요.
우리동네코딩 스튜디오가 여러분의 성장을 함께하겠습니다.


Welcome to Neighborhood Coding Studio!

Neighborhood Coding Studio was founded by a team of developers who studied computer science at top North American universities such as Carnegie Mellon, the University of Washington, the University of Toronto, and the University of Waterloo, and went on to gain hands-on experience at global tech companies like Google, Microsoft, and Meta.

It all began as a study group formed by computer science students across the U.S. and Canada, created to grow together by sharing knowledge, solving problems, and learning from one another.
Though we were attending different schools in different time zones, the experience was so meaningful that it led us to one simple thought:

“What if we shared this way of learning with others?”

That thought became the foundation of Neighborhood Coding Studio.

Today, we are a team of around 30 active developers and computer science students, each taking responsibility for their area of expertise—designing and delivering a curriculum that spans from foundational knowledge to real-world development.
We’re not just here to teach—we’re here to help you see through the lens of real developers and grow together.

“To become a real developer, you must learn from real developers.”

Our courses take you through the entire web development journey—from start to finish—focused on hands-on practice, real-world projects, and practical feedback.
We care deeply about each learner’s growth and are committed to supporting your path every step of the way.

🎯 Our philosophy is simple but powerful:
"True learning comes from doing, and true growth happens together."

Whether you're just getting started, preparing for your first job, or exploring your future in tech,
Neighborhood Coding Studio is here to be your launchpad—and your trusted companion on the journey.

You don’t have to do it alone.
Let Neighborhood Coding Studio walk with you toward your future in development.

Chương trình giảng dạy

Tất cả

53 bài giảng ∙ (5giờ 5phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Ưu đãi có thời hạn

14.850 ₫

70%

1.047.963 ₫

Khóa học khác của nhcodingstudio

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!