NTM Solutions

Bài đăng nổi bật

🚀 Laravel 12 (2026) — Từ PHP Core đến Full Stack📘

Nếu cập nhật theo Laravel 12 LTS (2026) thì mình sẽ chia thành các phần như sau để người học đi từ PHP Core → Laravel → Triển khai dự án th...

Chủ Nhật, 19 tháng 7, 2026

📘Node.js 2026 — Bài 03 — Chương trình Node.js đầu tiên

"Mọi lập trình viên Node.js đều bắt đầu từ một dòng lệnh đơn giản: node app.js. Từ đó, bạn sẽ khám phá cách chương trình giao tiếp với hệ điều hành và người dùng thông qua console, process, argvreadline."


Mục tiêu bài học

Sau bài học này, bạn sẽ:

  • Biết cách tạo chương trình Node.js đầu tiên.

  • Chạy file JavaScript bằng lệnh node.

  • Sử dụng console để hiển thị thông tin.

  • Hiểu đối tượng process.

  • Đọc tham số dòng lệnh bằng process.argv.

  • Nhập dữ liệu từ bàn phím bằng readline.


Chuẩn bị

Tạo thư mục mới:

node-basic

Mở thư mục bằng VS Code.

Tạo file:

app.js

Cấu trúc thư mục:

node-basic
│
└── app.js

Chương trình Node.js đầu tiên

Mở file app.js:

console.log("Hello Node.js!");

Lưu lại.

Mở Terminal:

node app.js

Kết quả:

Hello Node.js!

Xin chúc mừng!

Bạn vừa chạy thành công chương trình Node.js đầu tiên.

Chú ý: nhớ cd vào thư mục node-basic


Lệnh node

Node.js thực thi file JavaScript bằng lệnh:

node tên_file.js

Ví dụ:

node app.js

hoặc

node hello.js

Node sẽ:

  1. Đọc file.

  2. Biên dịch JavaScript bằng V8 Engine.

  3. Thực thi chương trình.

  4. Hiển thị kết quả.


Console

console là đối tượng dùng để hiển thị thông tin ra Terminal.

Ví dụ:

console.log("Xin chào!");

console.log(100);

console.log(true);

Kết quả:

Xin chào!
100
true

console.log()

Đây là hàm được sử dụng nhiều nhất.

const name = "An";

console.log(name);

Kết quả:

An

Hiển thị nhiều giá trị

const name = "An";
const age = 20;

console.log(name, age);

Kết quả:

An 20

Template Literal

const name = "An";
const age = 20;

console.log(`Tên: ${name}`);

console.log(`Tuổi: ${age}`);

Kết quả:

Tên: An

Tuổi: 20

Chú ý: dấu huyền backtick chứ k phải nháy đơn


Process

Node.js cung cấp đối tượng toàn cục:

process

Đây là cầu nối giữa chương trình Node.js và hệ điều hành.

Thông qua process, chúng ta có thể:

  • biết hệ điều hành

  • biết thư mục hiện tại

  • đọc biến môi trường

  • lấy tham số dòng lệnh

  • kết thúc chương trình


process.version

Hiển thị phiên bản Node.js.

console.log(process.version);

Ví dụ:

v24.3.0

process.platform

Hiển thị hệ điều hành.

console.log(process.platform);

Ví dụ:

Windows

win32

Linux

linux

macOS

darwin

process.cwd()

Thư mục hiện tại.

console.log(process.cwd());

Ví dụ:

D:\Projects\node-basic

process.exit()

Kết thúc chương trình.

console.log("Bắt đầu");

process.exit();

console.log("Dòng này sẽ không chạy");

Kết quả:

Bắt đầu

process.argv

Đây là một trong những tính năng thú vị của Node.js.

argv là mảng chứa các tham số truyền vào từ Terminal.

Ví dụ:

node app.js Hello NodeJS

Trong chương trình:

console.log(process.argv);

Ví dụ kết quả:

[
'C:\\Program Files\\nodejs\\node.exe',
'D:\\node-basic\\app.js',
'Hello',
'NodeJS'
]

Lấy tham số đầu tiên

console.log(process.argv[2]);

Chạy:

node app.js ChatGPT

Kết quả:

ChatGPT

Ví dụ

const name = process.argv[2];

console.log(`Xin chào ${name}!`);

Chạy:

node app.js Minh

Kết quả:

Xin chào Minh!

Readline

Nếu argv nhận dữ liệu ngay khi chạy chương trình thì readline cho phép nhập dữ liệu trong lúc chương trình đang chạy.

Đầu tiên import module:

const readline = require("readline");

Tạo đối tượng:

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

Ví dụ nhập tên

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question("Tên của bạn là gì? ", (name) => {

    console.log(`Xin chào ${name}!`);

    rl.close();

});

Kết quả:

Tên của bạn là gì?

An

Xin chào An!

Nhập hai giá trị

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question("Số thứ nhất: ", (a) => {

    rl.question("Số thứ hai: ", (b) => {

        console.log(Number(a) + Number(b));

        rl.close();

    });

});

Kết quả:

Số thứ nhất: 10

Số thứ hai: 20

30

argv hay readline?

process.argvreadline
Nhập dữ liệu khi chạy lệnhNhập dữ liệu trong lúc chương trình chạy
Thường dùng cho scriptThường dùng cho chương trình tương tác
Đọc nhanhLinh hoạt hơn

Một số lỗi thường gặp

Quên lưu file

Hello Node.js không thay đổi

Do chưa lưu file.


Sai tên file

node ap.js

Kết quả:

Cannot find module

Hãy kiểm tra đúng tên file.


Sai đường dẫn

Đang ở thư mục khác:

node app.js

Sẽ báo lỗi.

Kiểm tra bằng:

pwd

hoặc trên Windows:

cd

Thiếu rl.close()

Nếu quên:

rl.close();

Chương trình sẽ tiếp tục chờ nhập dữ liệu và không tự kết thúc.


Tổng kết

Qua bài học này, bạn đã biết:

  • ✅ Tạo và chạy chương trình Node.js đầu tiên.

  • ✅ Sử dụng lệnh node app.js.

  • ✅ Hiểu cách dùng console.log() để hiển thị thông tin.

  • ✅ Làm quen với đối tượng process và một số thuộc tính quan trọng như version, platform, cwd()exit().

  • ✅ Đọc tham số dòng lệnh bằng process.argv.

  • ✅ Nhập dữ liệu từ bàn phím với readline.

Đây là những công cụ cơ bản nhưng sẽ xuất hiện thường xuyên trong suốt quá trình học Node.js.


Bài tập thực hành

Bài 1

Tạo file hello.js và hiển thị:

Xin chào Node.js!

Chạy chương trình bằng Terminal.


Bài 2

Viết chương trình hiển thị:

  • Phiên bản Node.js.

  • Hệ điều hành.

  • Thư mục hiện tại.

Gợi ý:

  • process.version

  • process.platform

  • process.cwd()


Bài 3

Viết chương trình nhận tên từ dòng lệnh và hiển thị:

Xin chào <tên>!

Ví dụ:

node app.js Lan

Kết quả:

Xin chào Lan!

Bài 4

Sử dụng readline để nhập:

  • Họ tên

  • Tuổi

Sau đó hiển thị:

Xin chào Nguyễn Văn A!

Bạn 20 tuổi.

Bài 5 ⭐ Thử thách

Viết chương trình nhập hai số bằng readline và hiển thị:

  • Tổng

  • Hiệu

  • Tích

  • Thương

Ví dụ:

Số thứ nhất: 12

Số thứ hai: 4

Tổng: 16

Hiệu: 8

Tích: 48

Thương: 3

📖 Bài tiếp theo: Bài 04 — Module trong Node.js: CommonJS, ES Module, export, importpackage.json.

x1

quay về MỤC LỤC

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS