Trang 2
MC LC
Lời nói đầu ................................................................................................................... 5
Cách học đúng cách .............................................................................................................................. 5
Yêu cầu trình độ ...................................................................................................................................... 6
Liên h vi tác gi ................................................................................................................................... 6
Phn 1: Gii thiu ........................................................................................................ 7
Gii thiu ng dng blog s xây dng ................................................................................................. 7
Node.js là gì? ........................................................................................................................................... 8
Cài đặt Node.js .......................................................................................................................................... 9
Tạo server Nodejs đầu tiên ..................................................................................................................... 10
Hiểu hơn về request và response ........................................................................................................... 12
Phn 2: Gii thiu v NPM và Express ........................................................................ 15
Cài đặt Custom Package vi NPM ..................................................................................................... 15
Gii thiu Express ................................................................................................................................. 18
Tng kết ................................................................................................................................................. 24
Phn 3: ớc đầu to web app vi Express ................................................................ 25
Ti web template .................................................................................................................................. 25
T động khởi động server mỗi khi thay đổi mã ngun ................................................................... 26
Npm start ............................................................................................................................................... 27
Tạo thư mục public cha tp static ........................................................................................................ 27
To Page routes ................................................................................................................................... 30
Tng kết ................................................................................................................................................. 30
Phn 4: Templating Engine ........................................................................................ 31
Gii thiu Template engine ................................................................................................................. 31
Layout .................................................................................................................................................... 33
Tng kết ................................................................................................................................................. 35
Phn 5: Gii thiu MongoDB ...................................................................................... 36
Kiến trúc ca MongoDB ....................................................................................................................... 37
Cài đặt MongoDB ................................................................................................................................. 37
Kết ni và qun lý MongoDB vi Robo 3T ......................................................................................... 39
Trang 3
Cài đặt Mongoose ................................................................................................................................ 40
Kết ni MongoDB t Node.js .............................................................................................................. 40
Định nghĩa Model .................................................................................................................................. 40
To các action CRUD vi Mongoose model ..................................................................................... 41
Tng kết ................................................................................................................................................. 43
Phn 6: ng dng MongoDB vào d án ...................................................................... 44
Lưu dữ liu bài Post vào Database .................................................................................................... 47
Hiển thị danh sách các bài Post ......................................................................................................... 48
Hin th d liệu động vi Template engine ....................................................................................... 49
Hin th ni dung mt Post ................................................................................................................. 51
Thêm Fields và Schema ...................................................................................................................... 52
Tổng kết ................................................................................................................................................. 53
Phn 7: Tạo tính năng upload ảnh vi Express ........................................................... 54
Tổng kết ................................................................................................................................................. 58
Phn 8: Tìm hiu Express Middleware........................................................................ 59
Middleware tùy chỉnh ........................................................................................................................... 59
Tạo và đăng ký Validation middleware ............................................................................................. 60
Tổng kết ................................................................................................................................................. 61
Phn 9: Refactoring theo mô hình MVC ...................................................................... 62
Gii thiu mô hình MVC ....................................................................................................................... 62
Tiến hành Refactoring.......................................................................................................................... 63
Tổng kết ................................................................................................................................................. 66
Phn 10: Tạo tính năng đăng ký thành viên ................................................................ 67
User Model ............................................................................................................................................ 69
Controller x đăng ký user .................................................................................................................. 70
Mã hóa mt khu .................................................................................................................................... 71
Mongoose Validation .............................................................................................................................. 73
Tạo tính năng đăng nhập .................................................................................................................... 74
Tổng kết ................................................................................................................................................. 77
Phn 11: Xác thc vi Express Sessions .................................................................... 78
Implementing User Sessions .............................................................................................................. 79
Trang 4
Protect một Pages nào đó với Authentication Middleware ........................................................... 81
User Logout ........................................................................................................................................... 83
To trang 404 ........................................................................................................................................ 84
Tổng kết ................................................................................................................................................. 86
Phn 12: Trin khai web app lên server tht ............................................................... 87
Cài đặt server ........................................................................................................................................ 87
Đưa sourcecode Node.js lên VPS ...................................................................................................... 89
Qun lý ng dng Node.js bng PM2 ................................................................................................ 90
Kết ni domain vào vps ....................................................................................................................... 91
Cu hình Nginx Reverse Proxy Server ............................................................................................... 91
Chào tm bit .......................................................................................................................................... 92
Tài liu tham kho ..................................................................................................... 93
Trang 5
Lời nói đầu
ode.js đang trở thành một xu hưng ca gii lp trình back-end. Có rt nhiu
ng dng ln của các đại gia đang sử dng Nodejs. Có th k tên như: Paypal,
Netflix, LinkedIn...
Mc tiêu ca cuốn sách này đó là giúp các bạn bước vào thế gii ca Node.js mt cách
vng chc nht. Tc là bn s hiểu rõ được bn cht, cách xây dng ng dng Nodejs
mt cách bài bn nht. Nếu không quá khi gọi là "vũ trụ Node.js ". "Vũ trụ Node.js " bt
ngun t viên gch Javascript.
Để khám phá "Vũ trụ Node.js " một cách trơn tru, cuốn sách này s giúp các bn tìm
hiu "tam trụ" cơ bản ca Node.js, đó là Node.js, ExpressJS, và MongoDB.
Mi phn trong cun sách này s đưc trình bày thng vào vấn đề, kiến thc trng tâm
để tránh mt thi gian vàng ngc ca bn.
Sau khi bạn đọc xong cun sách này, bn s đủ k năng để t mình xây dng mt web
app bng Nodejs và trin khai nó trên Internet.
ch học đúng cách
Cun sách này mình chia nh ni dung thành 12 phn, mi phn s gii thiu mt ch
đề riêng bit. Mục đích là để bn có th ch động lch hc, không b dn nén quá nhiu.
Vi mi phn lý thuyết, mình đều có ví d minh ha và code luôn vào d án. Vì vy, cách
hc tt nht vn là va hc va thc hành. Bn nên t mình viết li tng dòng code
chạy nó. Đừng copy c đoạn code trong sách, điều này s làm hn chế kh năng viết
code ca bạn, cũng như làm bạn nhiu khi không hiu vì sao code b li.
N
Nh nhé, đọc đến đâu, tự viết code đến đó, tự build và kim tra đoạn code đó chạy
đúng không!