Bài viết sau sẽ giới thiệu NodeJS Node.js cho các bạn. Đây là một nền tảng sử dụng V8 JavaScript engine của Google để xây dựng các ứng dụng mạng (bao gồm webserver) được nhiều tổ chức đánh giá cao vì các đặc điểm như dễ dàng xây dựng và triển khai, dễ dàng mở rộng và phát triển ứng dụng đặc biệt là các ứng dụng cần trao đổi dữ liệu thời gian thực (real-time) và các ứng dụng chạy trên các thiết bị phân tán, di động...
1. Giới thiệu
Một số đặc điểm của Node.js như sau:
- ngôn ngữ lập trình chính phổ biến là JavaScript
- sử dụng Google V8 làm engine xử lý JavaScript nên tốc độ nhanh
- sử dụng mô hình non-blocking IO nên có hiệu suất xử lý tốt
- có chương trình quản lý thư viện riêng - npm (Node Packaged Modules), giống cpan của ngôn ngữ lập trình Perl, gem của Ruby.
- cộng đồng sử dụng, phát triển lớn
Phiên bản ổn định mới nhất(stable version): 0.10.33
Phiên bản thử nghiệm mới nhất (unstable version): 0.11.14
2. Hướng dẫn cài đặt trên CentOS 6 64bit
Áp dụng tương tự cho các dòng Red Hat® Enterprise Linux® / RHEL, CentOS and Fedora.
Áp dụng tương tự cho các dòng Red Hat® Enterprise Linux® / RHEL, CentOS and Fedora.
Yêu cầu cài đặt sẵn trên máy chủ các gói sau
- GCC 4.2 hoặc mới hơn
- GNU make 3.81 hoặc mới hơn
- python 2.6 hoặc 2.7
- libssl-dev
- libexecinfo
Cài đặt tất cả các thư viện cần thiết đã liệt kê ở trên bằng lệnh sau:
$yum -y groupinstall "Development Tools"
2.1 Cài đặt qua yum
Hiện tại nodejs và thư viện npm đã được phân phối trên EPEL repo, bạn có thể kiểm tra lại danh sách các repo bằng lệnh:
$yum repolist enabled
Hoặc cài đặt repo EPEL bằng lệnh sau cho phiên bản CentOS 6 64bit (x86_64):
$rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Sau đó cài đặt NodeJS và npm bằng lệnh sau:
$yum install -y nodejs npm
2.2 Cài đặt từ mã nguồn
- download mã nguồn
$wget http://nodejs.org/dist/v0.10.4/node-v0.10.4.tar.gz
- giải nén và cài đặt
$tar zxf node-v0.10.4.tar.gz
$cd node-v0.10.4
$./configure
$make
$make install
3. Khởi chạy một ứng dụng
Tạo một ứng dụng webserver in ra dòng dữ "Hello World" khi có request đến từ trình duyệt của người dùng, mã nguồn như sau:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://0.0.0.0:1337/');
Lưu lại file với tên example.js và chạy ứng dụng với câu lệnh sau:
$node example.js
Kiểm tra chương trình đã hoạt động ở port 1337 bằng lệnh
$netstat -lntp
Truy cập trình duyệt để kiểm tra kết quả:
4. Một số công cụ hỗ trợ
Mỗi khi ta tiến hành thay đổi mã nguồn của ứng dụng thì đều cần phải restart lại NodeJS bằng cách kill process NodeJS và khởi động lại để áp dụng những phần mới thay đổi trong mã nguồn hoặc khi bắt đầu chạy NodeJS thì đều phải giữ nguyên cửa sổ terminal, sử dụng lệnh 'screen'... tuy nhiên có một số công cụ tự động giúp thực hiện điều này và còn bổ sung thêm nhiều chức năng khác.
forever: giúp ứng dụng NodeJS chạy liên tục và có thêm chức năng chạy nhiều process NodeJS cùng một lúc dưới dạng background services
cài đặt: npm install -g forever
chạy: forever -w app.js #-w là tùy chọn restart NodeJS khi nội dung file thay đổi
node-supervisor: giúp khởi động lại ứng dụng khi ứng dụng đó bị lỗi, theo dõi file thay đổi hoặc restart máy chủ khi cần thiết
cài đặt:
#gõ lệnh 'visudo' và thêm '/usr/local/bin' vào dòng 'secure_path', sau đó lưu lại và tiến hành cài đặt supervisor:
$npm -g install supervisor
chạy: $supervisor example.js
Tài liệu tham khảo:
---
- [The Wiki](https://github.com/joyent/node/wiki)
- [nodejs.org](http://nodejs.org/)
Chúc bạn thành công!
Chúc bạn thành công!