Nodejs knowlegde - bigktmbig/MyExperienceAlgorithm GitHub Wiki

  • Nodemon: Công cụ giúp tự động restart ứng dụng nodejs khi có sự thay đổi của các files trong directory đc phát hiện.

  • Pm2: Trình quản lý các process của các ứng dụng nodejs, tự động restart lại process và keep alive forever khi bị chết hoặc reboot hệ thống.

  • Forever: Bạn có thể sử dụng Forever để chạy các tập lệnh liên tục (cho dù nó được viết bằng node.js hay không).

  • Non-Blocking IO(không chặn):

  • Event-Driven(hướng sự kiện):

  • Asynchronous(bất đồng bộ):

  • I/O: là quá trình giao tiếp (lấy dữ liệu vào, trả dữ liệu ra) giữa một hệ thống thông tin và môi trường bên ngoài.

  • Deadlock (Khóa chết): là trạng thái xảy ra trong môi trường đa nhiệm (muti-threading) khi hai hoặc nhiều tiến trình đi vào vòng lặp chờ tài nguyên mãi mãi.

  • Race conditions (Tình huống tương tranh). Là trường hợp thường xảy ra bên trong critical section. Khi có hai hay nhiều Thread cùng chia sẻ dữ liệu, hay đơn giản là cùng đọc và ghi vào một vùng dữ liệu. Khi đó vấn đề xảy ra là: Kết quả của việc thực thi multiple threads có thể thay đổi phụ thuộc vào thứ tự thực thi các thread.

  • Gulp là một công cụ giúp bạn tự động hóa nhiều task (nhiệm vụ) trong quá trình phát triển web. Nó thường được sử dụng để làm các tác vụ front end như: Tạo ra một web server, reload trình duyệt một cách tự động bất cứ khi nào một file được lưu, tối ưu hóa các tài nguyên như CSS, JavaScript và hình ảnh, biên dịch Sass thành CSS, ...

  • REST là từ viết tắt của Representational State Transfer, là kiến trúc tiêu chuẩn web và Giao thức HTTP.

  • RESTful sử dụng các yêu cầu HTTP để thực hiện bốn hoạt động được gọi là CRUD (C: Create, R: Read, U: Update, và D: Delete).

  • Async / Await : trả về Promise, ex: async function getJSONAsync() { let json = await axios.get('./example.json'); return json; }

  • callback: nested function, ex: function test(data, cb){return cb(data);} test(data, function(data){console.log(data);});

  • Promise: return then() functiom, ex: function getJSON() {return new Promise( function(resolve) {axios.get('./example.json').then( function(json) {resolve(json);});});}