Học về Global Objects trong NodeJS

Học về Global Objects trong NodeJS là vấn đề được nhiều lập trình viên quan tâm, bởi những kiến thức trên trường lớp là không đủ, vì vậy bài Học về Global Objects trong NodeJS sẽ chia sẻ tới bạn nhiều thông tin hữu ích

Mọi người vẫn hỏi tôi về việc học lập trình nói chung và NodeJS nói riêng có cần năng khiếu hay quá khó để tiếp cận hay không. Thì tôi có thể trả lời rằng, học lập trình cũng như việc bạn học tiếng Anh hay bất kỳ một ngôn ngữ khác, bởi lập trình...là ngôn ngữ của máy tính, để máy tính đọc và máy tính thực hiện theo yêu cầu của mình, bạn thích là học được.

Trong bài này chúng ta sẽ tìm hiểu Global Objects trong NodeJS, đây là những object có phạm vi toàn cục và bạn có thể sử dụng bất cứ đâu trong dự án NodeJS của mình.

Chắc hẳn ai đã từng học lập trình cũng đã từng nghe qua khái niệm về phạm vi toàn cục (global scope), điển hình như khi ta viết Javascript chạy trên trình duyệt nó cung cấp cho ta một object toàn cục là window. Chúng ta có thể gọi window trong bất cứ đâu mà không cần khai báo.

Trong NodeJS cung cấp cho chúng ta một vài object toàn cục (global Objects) hữu ích trong quá trình làm việc với NodeJS.

1. Global Objects trong NodeJS là gì ?

Global Objects là các object mà NodeJS cung cấp sẵn cho chúng ta trong nhân của NodeJS và trong các module. Bạn không cần phải khai bái hay include nó từ các thư viện khác mà chỉ cần gọi trực tiếp nó trong dự án. Các objects này có thể là một module, một hàm, object, string,... Các global objects được sử dụng rất thường xuyên trong lập trình với NodeJS. Chúng ta thử in ra các giá trị của biến global :

Bạn mở file global.js có nội dung như sau:

  console.log(global) 

Bây giờ mở command lên và chạy dòng lệnh

  node global.js 

Chúng ta sẽ thấy các global objects mà NodeJS hỗ trợ như hình:

Học về Global Objects trong NodeJS

Các bạn sẽ thấy khá nhiều và có lẽ chúng ta ít khi nào cần dùng hết chúng, vì vậy trong trong phạm vi bài viết này chúng mình sẽ tìm hiểu một cố global objects mà chúng ta hay dùng trong lập trình NodeJS như :

  • __dirname
  • __filename
  • Process
  • Console
  • Timer Functions

2. Tìm hiểu về một số Global Objects hay dùng

Một số obejcts chúng ta có thể gọi ở tất cả các module, tổn tại trong pham vi của module và bị hiểu nhầm là globals object.

  • __dirname
  • __filename
  • exports
  • module
  • require()

Biến __dirname trong NodeJS

Được dùng để trả về đường dẫn đến thư mục hiện tại, chúng ta thử tạo một file có tên là dirname.js có nội dung như sau:

  console.log(__dirname) 

chạy file dirname.js với dòng lệnh :

  node dirname.js 

Chúng ta sẽ nhận được đường dẫn của thư mục hiện tại chứ file dirname.js

Học về Global Objects trong NodeJS

Biến __filename trong NodeJS

Gần tương tự như __dirname, biến __filename trả về đường dẫn file đang chạy. Tạo file filename.js và chay đoạn code sau để xem kết quả :

  console.log(__filename) 

chạy file filename.js với dòng lệnh :

  node filename.js 

Chúng ta cũng sẽ nhận được đường dẫn đến file filename.js

  /home/tri/Desktop/Hoidapcode.com/dirname.js 

Console Object trong NodeJS

Console là một global object khá quen thuộc với chúng ta, bởi mình cũng đưa ra ví dụ cụ thể và để cập đến nhiều. NodeJS cung cho chúng ta một vài phương thức trong object console như :

  • console.log() : Nó dùng để hiển thị các thông báo trên console
  • console.error() : HIển thị các thông báo lỗi trên console
  • console.warn() : Hiển thị các cảnh báo


Buffer Object trong NodeJS

Buffer Class cũng là global objects được NodeJS hỗ trợ, nếu bạn chưa biết khái niệm Buffer là gì thì nó là vùng lưu trữ dữ liệu tạm thời được lưu trữ trong bộ nhớ Ram. NodeJS cung cấp cho chúng ta module Buffer cho phép ta có thể lưu trữ dữ liệu như một mảng các số nguyên tố. Moudle buffet được dùng thay vì lưu trữ bằng nhị phân bởi javascript thuần rất ít hỗ trợ nhị phân. Chúng ta có thể dùng module Buffer mà không cần khai báo.

Tạo một buffer ta có thể sử dụng đoạn code như

  const buf = new Buffer('hello Hoidapcode');      

Thêm giá trị vào buffer

  buf.write(string, [offset], [length], [encoding])     

Chuyển buffer thành string

  buf.toString([encoding], [start], [end])     

Các bạn có thể đọc thêm tài liệu về buffer trong docs của Nodejs ở trang chủ để tìm hiểu kĩ hơn

Timers Functions trong NodeJS

Timers functions cũng thuộc các global objects trong Nodejs, những bạn nào đã xem qua seri lập trình javascript căn bản chắc cũng đã tìm hiểu qua các hàm timers như : setTimeout, setInterval, setImmediate,..

Set Timer function

  • setImmediate() : chạy ngay lập tức (như cái tên của nó) =))
  • setTimeout() : chạy trong một khoảng thời gian.
  • setInterval(): lặp đi lặp lại trong khoảng thời gian

Clear timer functions

  • clearImmediate() : dừng một setImmediate objects, tạo bởi hàm setImmediate()
  • clearTimeout() : dừng một setTimeout objects, tạo bởi hàm setTimeout()
  • clearInterval() : dừng một setInterval objects, tạo bởi hàm setInterval()

Vì các hàm lại khá quen thuộc nên mình cũng không cần ví dụ mình họa, các bạn tìm hiểu kĩ hơn có thẻ tham khảo bài viết về seri lập trình javascript căn bản.

Trong bài hôm nay chúng ta đã tìm hiểu về một số các global objects trong NojdeJS, ngoài các objects mà mình đề cập đến ở trên Nodejs còn cung cấp cho chúng ta các objects khác như : exports, global, module, process. Để tìm hiểu thêm về các global object khác thì bạn có thể đọc tài liệu tại trang chính thức của NodeJS. Cảm ơn bạn đã ghé thăm, mong rằng bài viết sẽ cung cấp cho bạn kiến thức bổ ích trong lập trình NodeJS.

Hy vọng với bài viết về Học về Global Objects trong NodeJS đã giải đáp giúp bạn phần nào về kiến thức lập trình NodeJS. Như tôi đã nói, ngôn ngữ lập trình không quan trọng bằng tư duy giải thuật, tư duy logic để giải quyết vấn đề.

Với những năm trước đây, lập trình viên là một cái nghề khó và kén chọn người học, đồng nghĩa với việc thu nhập hàng tháng của các lập trình viên luôn cao. Còn những năm gần đây, thì lập trình là môn học phổ thông, và ai cũng nên học một ngôn ngữ lập trình nào đó.

Nếu bạn còn bất kỳ câu hỏi nào trong việc học lập trình online, hãy gửi yêu cầu cho tôi qua email hoidapcode.com@gmail.com hoặc để lại comment bên dưới, tôi sẽ giải đáp trong vòng 24 giờ!

Blog hoidapcode.com là blog được tổng hợp tự động các bài học, thông tin về lập trình trên mạng internet. Nếu bạn có ý kiến hoặc đóng góp về bài viết này, hãy liên hệ với tôi!