Tạo web server đầu tiên của chúng ta
Bây giờ rằng chúng ta đã học cơ bản về Node.js làm việc như thế nào, chúng ta có thể sử dụng thư viện node:http
để tạo một máy chủ web đơn giản. Cho web server đơn giản đầu tiên của chúng ta, chúng ta sẽ trả về trả lời
200 OK và một vài plain text trên bất cứ yêu cầu nào. Hãy bắt đầu với các bước:
1. Tạo một file backend/simpleweb.js mới, mở nó, và nhập khẩu hàm createServer từ node:http module:
import { createServer } from ‘node:http’
2. Hàm createServer là không đồng bộ, nên nó yêu cầu chúng ta truyền một hàm callback tới nó. Hàm này sẽ được thực
thi khi một yêu cầu đi vào từ server. Nó có 2 đối số, một request object (req) và một response object (res). Sử
dụng hàm createServer để định nghĩa một server mới:
const server = createServer((req, res) => {
3. Cho bây giờ, chúng ta sẽ bỏ qua request object và chỉ trả về một trả lời tĩnh. Trước tiên, chúng ta thiết lập
status code thành 200:
res.statusCode = 200
4. Sau đó, chúng ta thiết lập Content-Type header thành text/plain, như vậy thì các trình duyệt biết loại dữ liệu
trả lời gì nó sẽ làm việc với:
res.setHeader(‘Content-Type’, ‘text/plain’)
5. Cuối cùng, chúng ta kết thúc yêu cầu bằng cách trả về một Hello HTTP world! string trong trả lời:
res.end(‘Hello HTTP world!’)
})
6. Sau khi định nghĩa server, chúng ta cần đảm bảo lắng nghe trên một host và cổng nhất định. Những cái sẽ định
nghĩa nơi nào server sẽ là có sẵn. Cho bây giờ, chúng ta sử dụng localhost trên cổng 3000 để đảm bảo server
của chúng ta là có sẵn qua http://localhost:3000/:
const host = ‘localhost’
const port = 3000
7. Hàm server.listen cũng là không đồng bộ và yêu cầu chúng ta truyền một hàm callback, cái sẽ thực thi ngay
sau khi server hoạt động và chạy. Chúng ta đơn giản ghi lại thứ gì đó ở đây cho bây giờ:
server.listen(port, host, () => {
console.log(`Server listening on http://${host}:${port}`)
})
8. Chạy Node.js script như sau:
$ node backend/simpleweb.js
9. Bạn sẽ nhận thấy rằng chúng ta nhận Server đang lắng nghe trên http://localhost:3000 ghi lại thông điệp,
nên chúng ta biết server được bắt đầu thành công. Lần này, Terminal không trả về quyền kiểm soát tới chúng ta;
script giữ chạy. Chúng ta bây giờ có thể mở http://localhost:3000 trong một trình duyệt:
Bây giờ rằng chúng ta đã thiết lập một máy chủ web đơn giản, chúng ta có thể mở rộng nó để phục vụ một JSON file
thay vì đơn giản trả về plaintext.