Chủ đề nổi bật
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
Mới nhất

Express căn bản

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

NodeJS Modules

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

NodeJS Tutorials

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

NodeJS căn bản

Xin giới thiệu với các bạn một chuyên đề mới ra đầu năm 2016 đó là chuyên đề học NodeJS căn bản , đây là chuyên đề dành cho những bạn chưa biết về NodeJS và muốn trải nghiệm cũng như là tự học nó. Bây giờ là đầu năm 2016 nên ai cũng phải có mục tiêu cho riêng mình và cá nhân mình cũng vậy, ...

Socket.io Chat Application

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

NodeJS Server

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

Bài 09: Module Yargs Options trong NodeJS

Ở bài trước chúng ta đã tìm hiểu module Yargs trong NodeJS rồi nhưng đó chỉ ...

Bài 05: Tạo Project cho chuyên đề học NodeJS

Để tiện cho việc viết bài lẫn việc học của các bạn thì trong bài này mình sẽ ...

Bài 12: Mã hóa chuỗi trong NodeJS với module CryptTo-JS

Đôi khi bạn muốn mã hóa thông tin trước khi lưu vào cơ sở dữ liệu để thông tin được an toàn hơn. Ví dụ khi bạn thiết lập mật khẩu cho User thì bạn ...

Bài 07: Chương trình quản lý học sinh trong NodeJS

Như vậy ở bài thứ 5 mình đã giới thiệu sơ lược cách hoạt động của Module ...