- vừa được xem lúc

[NodeJS] Bài 2 - Khởi Tạo Một Máy Chủ Web

0 0 9

Người đăng: Semi Art

Theo Viblo Asia

Trong bài viết này, chúng ta sẽ thực hiện tạo ra một máy chủ web đơn giản với NodeJS và thảo luận về các công cụ sơ khai được sử dụng.

Cái máy chủ web trông như thế nào?

Theo mình đoán thì cái máy chủ web chắc là một cái laptop hay máy tính để bàn nào đó giống như chiếc mà bạn đang sử dụng. Bởi vì về cơ bản thì đó cũng chỉ là một chiếc máy tính thôi mà. 😄 Điều quan trọng ở đây là phần mềm - Chắc chắn ở đó có một phần mềm luôn luôn vận hành và chờ đợi yêu cầu được gửi đến từ các trình duyệt web để xử lý và gửi thông tin phản hồi lại. Và bây giờ thì chúng ta sẽ tạo ra một phần mềm như vậy chạy ngay trên chiếc máy tính của bạn. 😄

Đầu tiên chúng ta cần copy/paste một đoạn code ví dụ từ trang chủ của NodeJS vào một tệp có tên là server.js.

server.js

 /* Creating a server */ const http = require('http'); const handleRequest = function(request, response) { response.statusCode = 200; response.setHeader('Content-Type', 'text/plain'); response.end('Hello NodeJS Server !');
}; const server = http.createServer(handleRequest); /* Start running server */ const port = 3000;
const hostname = '127.0.0.1'; const callback = function() { console.log('Server is running at...'); console.log('http://' + hostname + ':' + port + '/');
}; server.listen(port, hostname, callback);

Sau đó tại cửa sổ dòng lệnh, chúng ta chạy tệp server.js để thử xem có gì được in ra trong console không. 😄

CMD

node server.js
:: kết quả:
:: 'Server is running at...'
:: 'http://127.0.0.1:3000/'

Terminal

node server.js
# kết quả:
# 'Server is running at...'
# 'http://127.0.0.1:3000/'

Rồi... xong! Bây giờ bạn thử dùng trình duyệt web truy xuất tới địa chỉ được in ra trong cửa sổ dòng lệnh xem. 😄

[http://127.0.0.1:3000/](http://127.0.0.1:3000/)

Nếu bạn đang có một thiết bị khác nữa ví dụ như điện thoại smartphone, máy tính bảng, hay một chiếc máy tính khác trong cùng mạng Wi-Fi, hãy thử dùng thiết bị đó để truy xuất theo đường dẫn:

http://địa.chỉ.IP.nội.bộ.máy.tính.của.bạn:3000/

Như vậy là chúng ta đã có một chiếc máy chủ web đúng nghĩa rồi phải không? 😄 Bây giờ nếu như bạn đang sử dụng một đường truyền internet với hợp đồng hơi xịn và được cấp một địa chỉ IP mạng cố định, thì bạn còn có thể nhờ bạn của bạn truy xuất từ một mạng nội bộ khác tới với đường dẫn để xem server này đã hoạt động online được chưa.

http://IP.nhà.mạng.cung.cấp/IP.nội.bộ:3000/

Rồi sau đó bạn có thể thuê một tên miền đẹp đẹp như kiểu tên-của-bạn.vn và nhờ công ty phân phối tên miền xử lý giúp thao tác trỏ về địa chỉ trên; Như vậy là bạn đã có một trang web online với chiếc máy chủ web miễn phí rồi. 😄

Máy chủ web online miễn phí cho các ứng dụng NodeJS cỡ mini

Tới đây mình muốn giới thiệu tới bạn một trang web miễn phí host cho nhu cầu sử dụng đơn giản như làm blog cá nhân. Và đặc biệt là trang web này được tạo ra cho những người đang tự mầy mò học lập trình NodeJS như chúng ta.

https://glitch.com/

Vậy là danh sách những công cụ miễn phí để học tập và làm việc của chúng ta đã lại dài thêm một chút. 😄 Glitch hoàn toàn miễn phí với nhu cầu sử dụng đơn giản với tổng thời gian online của ứng dụng NodeJS mà bạn đặt tại đó là 1000 giờ/1 tháng. Điều đáng nói là sau khi đăng ký tài khoản thành viên của Glitch và tạo một dự án project thì chúng ta có luôn một trình soạn thảo code online.

Thanh điều khiển ở phía bên dưới màn hình cũng có phần mở cửa sổ dòng lệnh Terminal và nút Preview để mở và xem kết quả vận hành của trang web mà chúng ta đang xây dựng.

Mặt khác nữa là tên miền của Glitch cũng khá đẹp phải không? 😄 Như vậy là có khả năng bạn sẽ không phải tốn tiền thuê tên miền cho trang blog cá nhân, và chiếc máy tính của bạn cũng có thể được nghỉ ngơi chứ không phải online 24/24. 😄

Github Pages thực sự cũng rất tuyệt cho nhu cầu blog cá nhân nhưng phần mềm ứng dụng ở phía server-side được cố định là Jekyll và chúng ta không thể thay đổi được. Sau khi xây dựng xong một blog đơn giản bằng NodeJSGlitch, rất có thể chúng ta sẽ nghĩ tới việc làm một trang blog khác để tận dụng hết khả năng của Github Pages. 😄

Tuy nhiên thì bây giờ chúng ta nên đánh dấu và lưu lại Glitch để dành thêm thời gian qua một vài bài viết nữa. Học thêm kiến thức về NodeJS đã nào. 😄

Những điểm cần quan tâm trong đoạn code server đầu tiên

Về mặt tổng quan, phần code ví dụ mà chúng ta mới copy/paste từ trang chủ của NodeJS cũng không quá khó hiểu phải không? 😄 Ở đây chúng ta có 2 thao tác chính là:

  • Tạo ra một object mô phỏng phần mềm có tên là server được gắn kèm một hàm xử lý yêu cầu handleRequest.
  • Khởi chạy phần mềm server bằng cách gọi phương thức listen với các giá trị truyền vào mô phỏng đường dẫn để truy cập tới trang web; Và một hàm gọi lại callback sẽ được thực hiện sau khi phần mềm server khởi động xong - tức là phương thức listen được thực hiện xong.

Về hàm gọi lại callback thì chúng ta đã nói đến trong bài viết [JavaScript] Bài 11 - Hàm & Vùng. Tuy nhiên phần viết về hàm callback thì mình bổ sung hơi muộn; Vì vậy nên nếu như bạn đọc bài đó từ sớm và không thấy nói tới callback thì thông cảm cho mình nhé, mấy ngày gần đây mình đãng trí lắm. 😄

Đoạn code khởi chạy phần mềm server ở phía bên dưới trông khá dễ hiểu. Do đó điểm chính mà chúng ta cần quan tâm tới lúc này có lẽ là hàm xử lý handleRequest. Bởi vì về cơ bản thì phần mềm này đã hoạt động được khi chúng ta gửi yêu cầu tới bằng cách dùng trình duyệt truy xuất vào địa chỉ http://127.0.0.1:3000/ với vai trò là một người dùng đang muốn xem nội dung của trang web. Việc cần làm bây giờ là chúng ta cần gửi trang chủ index.html mà chúng ta đã có tới cho người dùng chứ không phải là một dòng thông báo như trong code ví dụ.

Cụ thể hơn là chúng ta sẽ cần tìm hiểu cách làm thế nào để truy xuất nội dung của một tệp index.html đã được lưu trữ trong chiếc máy chủ của chúng ta. Rồi sau đó tiếp tục tìm hiểu cách làm thế nào để gửi nội dung đó theo dạng phản hồi lại yêu cầu của người dùng.

Bài viết của chúng ta tới đây cũng đã hơi dài quá rồi; Và để duy trì trọng tâm của bài về việc giới thiệu và khởi tạo một máy chủ NodeJS, chúng ta sẽ để dành thắc mắc mới nảy sinh cho bài sau. Hãy nghỉ giải lao một chút trước khi tiếp tục. Hẹn gặp lại bạn trong bài viết tiếp theo. 😄

(Sắp đăng tải) [NodeJS] Bài 3 - Module File System của NodeJS

Bình luận

Bài viết tương tự

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 374

- vừa được xem lúc

Hướng dẫn làm bot Facebook messenger cho tài khoản cá nhân

Giới thiệu. Trong bài viết trước thì mình có hướng dẫn các bạn làm chatbot facebook messenger cho fanpage. Hôm nay mình sẽ hướng dẫn các bạn tạo chatbot cho một tài khoản facebook cá nhân. Chuẩn bị.

0 0 146

- vừa được xem lúc

Crawl website sử dụng Node.js và Puppeteer - phần 2

trong phần 1 mình đã giới thiệu về puppeteer và tạo được 1 project cùng một số file đầu tiên để các bạn có thể crawl dữ liệu từ một trang web bất kỳ. Bài này mình sẽ tiếp nối bài viết trước để hoàn thiện seri này.

0 0 58

- vừa được xem lúc

Điều React luôn giữ kín trong tim

■ Mở đầu. Ngồi viết bài khi đang nghĩ vu vơ chuyện con gà hay quả trứng có trước, mình phân vân chưa biết sẽ chọn chủ đề gì để chúng ta có thể cùng nhau bàn luận.

0 0 42

- vừa được xem lúc

Gửi Mail với Nodejs và AWS SES

AWS SES. AWS SES là gì.

0 0 71

- vừa được xem lúc

Crawl website sử dụng Node.js và Puppeteer - phần 1

Bài viết này mình sẽ giới thiệu cho các bạn craw dữ liệu của web site sử dụng nodejs và Puppeteer. .

0 0 149