03/08/2018, 10:21

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ữ ...

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 code24h.com --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.

-------------------#####-------------------

DOWNLOAD TÀI LIỆU NODEJS

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

Bài liên quan

Tổng hợp các bài viết giới thiệu tính năng mới trong Java 8

Oracle đã phát hành một phiên bản Java 8 vào ngày 18/03/2014. Đây là một phiên bản mang tính cách mạng của Java cho nền tảng phát triển phần mềm. Nó bao gồm các nâng cấp khác nhau cho lập trình Java, JVM, Tools và các thư viện. Một số tính năng mới chủ yếu của Java 8 bao gồm: Default method ...

Hoàng Hải Đăng viết 18:05 ngày 12/08/2018

Giới thiệu về Canvas trong HTML5

HTML5 Canvas là gì? Khái quát về Canvas trong HTML5 Khi làm việc về web, các thẻ HTML ta không còn xa lạ nữa như: a, ul, li, div, span... Với HTML5 chúng sẽ làm làm quen với với 1 thẻ mới đó là Canvas, thẻ này trên HTML thì không khác so với các thẻ khác nhưng khác chủ yếu ở phần Javascript . ...

Trịnh Tiến Mạnh viết 13:43 ngày 12/08/2018

Giới thiệu về ExoPlayer trong Android

Hướng dẫn Play video và audio là một hoạt động phổ biến trên các thiết bị Android. Android framwork cung cấp MediaPlayer như một giải pháp nhanh chóng đơn giản và tiện ích nhất để thức hiện việc trên. Nó cũng cung cấp các media API cấp thấp như MediaCodec, AudioTrack và MediaDrm, cái mà có thể ...

Hoàng Hải Đăng viết 13:31 ngày 12/08/2018

Giới thiệu module ActiveSupport Concerns trong Rails

Kể từ Rails 4, một thư mục mặc định với tên là concerns được tạo ra mỗi khi tạo một project mới. Concern thực chất là các đoạn code được tách nhỏ ra cho phép chúng ta có thể tổ chức code một cách mạch lạc, “sạch sẽ” hơn. Tính năng này đã xuất hiện từ rất lâu trước khi phiên bản Rails 4 ...

Trịnh Tiến Mạnh viết 13:22 ngày 12/08/2018

Giới thiệu về Agile trong phát triển phần mềm

Cũng giống như tất cả các ngành sản xuất khác, việc thành công của phát triển phần mềm cũng đòi hỏi phải có những phương pháp phát triển hiệu quả. Một trong số đó là Agile, hiện đang rất phổ biến trên thế giới và được áp dụng tại nhiều công ty phần mềm Việt Nam. Vậy Agile là gì ? Agile ...

Hoàng Hải Đăng viết 13:02 ngày 12/08/2018
0