Xây dựng NodeJS Server đơn giản cho người bắt đầu

Đăng bởi: Admin | Lượt xem: 345 | Chuyên mục: NodeJS

NodeJS là một framework mạnh để build server hiệu năng cao. Trong bài viết này, mình sẽ hướng dẫn các bạn làm quen với NodeJS bằng việc xây dựng một ứng dụng NodeJS Server đơn giản đầu tiên


Bản chất của NodeJS là một cái server, không giống như các ngôn ngữ khác phải chạy trên một máy chủ web. Server này sử dụng những đoạn mã Javascript và không cần thông qua phần mềm nào cả. Và trong bài này mình sẽ hướng dẫn cài đặt một chương trình in ra một câu chào lên trình duyệt web.

Trước khi dựng một server NodeJS thì các bạn phải cài đặt NodeJS framework trên máy tính của mình. Nếu bạn nào chưa cài đặt có thể xem hướng dẫn cài đặt NodeJS cho Window, Mac OS, Ubuntu, Centos tại đây 

1. Xây dựng cấu trúc file NodeJS Server

Bạn tạo một thư mục bất kì cho server, giả sử mình đặt là nodejs-server, các bạn có thể tạo thủ công, hoặc tạo một project trên một IDE nào đó (ví dụ như NeatBean chẳng hạn), như mình tạo một folder thủ công sau đó soạn thảo trên Sublime Text

Tạo cấu trúc folder cho NodeJS

Bước 1. Tạo file package.json:

File package.json là file lưu trữ thông tin cấu hình cho dự án NodeJS, file có thể sinh tự động bằng lệnh npm init và điền các thông tin cần thiết theo yêu cầu . Bạn mở CMD/Terminal, dùng lênh cd để di chuyển tới thư mục nodejs-server vừa tạo sau đó chạy lệnh npm init và điền đầy đủ thông tin như hướng dẫn:

MacBooks-MacBook-Pro:nodejs-server macbookpro$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (nodejs-server) nodejs-server
version: (1.0.0) 
description: NodeJS Server Simple
entry point: (index.js) server.js
test command: hello test
git repository: 
keywords: NodeJS
author: MungND
license: (ISC) ISC
About to write to /Users/macbookpro/Downloads/nodejs-server/package.json:

{
  "name": "nodejs-server",
  "version": "1.0.0",
  "description": "NodeJS Server Simple",
  "main": "server.js",
  "scripts": {
    "test": "hello test"
  },
  "keywords": [
    "NodeJS"
  ],
  "author": "MungND",
  "license": "ISC"
}


Is this OK? (yes) 

Sau khi điền đầy đủ thông tin, ta sẽ có một file package.json bạn đầu

Bước 2. Chạy NodeJS Server thử:

Các bạn tạo một file server.js với nội dung sau:

console.log('The server is runing ...');

Vào CMD/Terminal chạy thử

npm start

Nếu kết quả xuất hiện chữ "The server is runing ..." thì ta đã xây dựng cấu trúc file thành công.

Test cấu trúc file server nodejs

2. Xây dựng NodeJS Server căn bản

Thông thường chúng ta có hai giao thức đó là http và https nên trong NodeJS có cung cấp cho chúng ta hai module tương ứng với hai cái tên đó luôn đó là http và https. Như vậy để tạo server giúp việc giao tiếp giữa client và server thì ta sẽ thông qua hai module này, tuy nhiên trong phạm vi bài viết này mình chỉ hướng dẫn sử dụng http thôi nhé.

Trước tiên bạn mở file server.js lên và nhập vào nội dung sau:

// Bước 1: Import module http
var http = require('http');
 
// Bước 2: Khởi tạo server
var server = http.createServer(function(request, response){
    // Biến request: là biến lưu trữ thông tin gửi lên của client
    // Biến response: là biến lưu trữ các thông tin trả về cho client
     
    // Thiết lập Header
    response.writeHead(200, {
        "Context-type" : "text/plain"
    });
     
    // Show thông tin
    response.write('Your URL is ' + request.url);
     
    // Kết thúc
    response.end();
});
 
// Bước 3: Lắng nghe cổng 300 thì thực hiện chương trình
server.listen(3000, function(){
    console.log('Connected Successfull!');
});

Để tạo NodeJS Server thì bạn phải thực hiện ba bước gồm:

  • Bước 1: Import thư viện http
  • Bước 2: Khởi tạo server. Chúng ta sử dụng hàm http.createServer và tham số truyền vào là một callback function, trong hàm callbackfunction có hai tham số truyền vào nữa đó là request và response,
  • Bước 3: Thiết lập cổng kết nối

Trong bước 2 bạn để ý đoạn code thiết lập header. Đây chính là phần khai báo các tham số của trang web như thông tin định dạng file trả về, kích thước file ... Còn mã code 200 tức là truy cập thành công.

Bây giờ bạn mở lại CMD/Terminal và gõ lệnh sau:

npm start

Xuất hiện dòng thông báo Connected Successfull! như trên là đã thành công. Bây giờ bạn mở trình duyệt ra và gõ vào URL http://localhost:3000/ thì sẽ xuất hiện giao diện như sau:

Truy cập thử server NodeJS

Hiện tại khi bạn gõ đường link bất kì, thì server sẽ trả về đường dẫn url, ví dụ các bạn truy cập http://localhost:3000/test-url thì sẽ in ra Your URL is /test-url

Sang phần sau mình sẽ hướng dẫn các bạn trả về một file, khi gõ đường link trên trình duyệt 

3. Truy cập một file trên Server

Bây giờ bạn tạo một file tên là about.html nằm trong project, sau đó pass nội dung dưới đây vào.

<!DOCTYPE html>
<html>
    <head>
        <title>VNCoder.vn - NodeJS Server căn bản</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <div style="padding: 50px; background: blue; color: #FFF">Xin chào, rất vui khi được chia sẻ kiến thức NodeJS</div>
    </body>
</html>

Tiếp theo bạn sửa lại file server.js như sau:

// Bước 1: Import module http và fs
var http = require('http');
var fs = require('fs');
 
// Bước 2: Khởi tạo server
var server = http.createServer(function(request, response){
    // Biến request: là biến lưu trữ thông tin gửi lên của client
    // Biến response: là biến lưu trữ các thông tin trả về cho client
     
    // Kiểm tra URL truy cập phải trang about ko
    if (request.url == '/about.html')
    {
        // Thiết lập Header
        response.writeHead(200, {
            "Context-type" : "text/html"
        });
         
        // Show thông tin trang about
        fs.createReadStream('./about.html').pipe(response);
    }
    else // trường hợp ngược lại ko tìm thấy file
    {
        // Thiết lập Header
        response.writeHead(404, {
            "Context-type" : "text/plain"
        });
         
        // Show lỗi không tìm thấy trang
        response.write('404 Not Found ' + request.url);
         
        // Kết thúc
        response.end();
    }
});
 
// Bước 3: Lắng nghe cổng 300 thì thực hiện chương trình
server.listen(3000, function(){
    console.log('Connected Successfull!');
});

Trong đoạn code này mình có sử dụng một module tên là fs, đây là module thao tác với file của NodeJS.

Bạn vào Git Bash và nhấn Ctr + C để hủy bỏ những thiết lập trước đó, sau đó chạy lại lệnh npm start nhé.

Bây giờ bạn chạy lên và nhập vào URL như sau http://localhost:3000/about.html thì sẽ thấy kết quả như hình là mọi thứ OK rồi đấy.

Hướng dẫn tạo server NodeJS

Như trên mình chỉ hướng dẫn các bạn đọc một file about.html, các bạn có thể làm tương tự với các file khác, hoặc xử lý đọc một file bất kì

Tổng kết

Như vậy trong bài viết này, mính đã hướng dẫn các bạn xây dựng một server NodeJS đơn giản cho người mới bắt đầu. Hi vọng bài viết sẽ giúp bạn làm quen với NodeJS hiểu được cách thức tổ chức project, cách thức hoạt động của NodeJS từ đó dễ dàng đi sâu tìm hiểu vào các bài viết khác. Cảm ơn

vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!



Khóa học liên quan

Khóa học: NodeJS

NodeJS cơ bản cho người mới bắt đầu
Số bài học:
Lượt xem: 10374
Đăng bởi: Admin
Chuyên mục: NodeJS