Giới thiệu module Yargs trong NodeJS
Trong bài này mình sẽ tìm hiểu đến một module rất hữu ích trong việc lấy dữ liệu từ người dùng đó là module yargs, công cụng của nó giống như việc lấy dữ liệu với phương thức GET trong PHP vậy.
1. Yargs là gì?
Yargs là một module có tác dụng tách chuỗi của các request và lấy các tham số + giá trị của các tham số, module này rất hữu ích trong việc giao tiếp lấy dữ liệu từ client.
Cài đặt yargs:
Để cài đặt yargs thì bạn bật Command Prompt lên và gõ dòng lệnh sau rồi nhấn Enter:
Bài viết này được đăng tại [free tuts .net]
npm install yargs
Sau đó bạn chờ nó cài đặt Version mới nhất của Yargs.
2. Cách sử dụng Yargs căn bản
Tạm thời các bạn cứ hiểu rằng URL chính là cú pháp của command line mà ta gõ để chạy file js, vì vậy để truyền các tham số thì ta sẽ bổ sung trong command line luôn.
Trước tiên bạn tạo một file tên là yargs-demo.js
nằm trong thư mục D:/nodejs-freetuts
, chúng ta sẽ thực hành trên file này.
Truyền tham số dạng chỉ có value.
Tất cả các tham số sẽ được lưu trữ trong thuộc tính argv của Yargs. Bạn mở file yargs-demo.js
và nhập vào nội dung sau:
var yargs = require('yargs'); // Lấy hết tham số var argv = yargs.argv; // In ra xem thử console.log(argv);
Và chạy với đoạn code sau:
node yargs-demo.js
Kết quả trả về như hình sau:
Tát cả các tham số sẽ được lưu trong key _
của đối tượng trả về argv
.
Ok tiếp theo ta thử chạy với đoạn code sau:
node yargs-demo.js cuong freetuts
Kết quả nó sẽ như hình sau:
Như vậy nếu ta truyền các giá trị đằng sau thì nó sẽ lưu vào key _
và các tham số đó sẽ nằm trong một mảng. Không tin bạn thay đổi lại file yargs-demo.js
như sau:
var yargs = require('yargs'); // Lấy hết tham số var argv = yargs.argv._; // In ra xem thử console.log(argv);
Thì kết quả nó trả về một mảng:
Truyền tham số dạng key => value.
Để truyền tham sô dạng key => value thì ta sử dụng cú pháp sau:
node yargs-demo.js --key=value hoặc node yargs-demo.js --key=value
Ví dụ: Truyền tham số domain và author
Bạn chỉnh lại file yargs-demo.js
như sau:
var yargs = require('yargs'); // Lấy hết tham số var argv = yargs.argv; // In ra xem thử console.log(argv);
Chạy lên với mã code:
node yargs-demo.js --domain freetuts.net --author thehalfheart
Thì kết quả như hình sau:
Vậy nếu ta dùng cú pháp --key value
thì nó sẽ không lưu vào key _
nữa mà sẽ tạo một key riêng luôn.
3. Ví dụ sử dụng Yargs căn bản
Bây giờ ta làm một ví dụ như sau: Viết chương trình kiểm tra số n từ người dùng nhập vào có phải là số nguyên tố hay không.
Để kiểm tra số nguyên tố thì mình sẽ dùng một hàm trong bài kiểm tra số nguyên tố bằng javascript nhé.
// Hàm kiểm tra số nguyên tố function kiem_tra_snt(n) { // Biến cờ hiệu var flag = true; // Nếu n bé hơn 2 tức là không phải số nguyên tố if (n < 2){ flag = false; } else if (n == 2){ flag = true; } else if (n % 2 == 0){ flag = false; } else{ // lặp từ 3 tới n-1 với bước nhảy là 2 (i+=2) for (var i = 3; i < n-1; i+=2) { if (n % i == 0){ flag = false; break; } } } return flag; } // Main Code var yargs = require('yargs'); var argv = yargs.argv; if (typeof argv.n == "undefined"){ console.log('Ban chua nhap n'); } else{ if (kiem_tra_snt(argv.n)){ console.log('La so nguyen to'); } else{ console.log('Khong phai so nguyen to'); } }
Bây giờ bạn chạy với lệnh:
node yargs-demo.js
Thì nó sẽ thông báo là chưa nhập n. Bạn thử chạy với lệnh sau:
node yargs-demo.js --n 11
Thì nó sẽ thông báo là số nguyên tố.
4. Lời kết
Trên là một số ví dụ rất basic về yargs, vẫn còn khá nhiều vấn đề nữa đó là tùy chọn options trong Yargs nhưng mình sẽ trình bày ở một video khác nhé. Bài này mình dừng ở đây, hẹn gặp lại bạn ở bài tiếp theo.