Bài 08: 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:

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.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.