Mình nghĩ là về chỗ setTimeOut bạn nên giải thích thêm về cơ chế event loop, vì nếu lỡ như có bạn nào không biết về event loop thì sẽ có thể dẫn đến hiểu nhầm hoặc đơn giản là sử dụng nhưng không biết vì sao hàm setTimeOut lại chạy sau
@NPThao À à hiểu rồi. 🤣 khác đấy...
Khi e lưu đoạn code vào một file và chạy file đó, có một sự khác biệt trong cách Node.js xử lý Event Loop so với việc thực thi trực tiếp trên terminal.
Khi e chạy file JavaScript thông qua Node.js, quá trình xử lý sẽ diễn ra theo từng bước như sau:
Đọc và biên dịch toàn bộ nội dung của file JavaScript.
Thực thi các dòng code trong file JavaScript theo thứ tự từ trên xuống dưới.
Vì quá trình đọc và biên dịch file xảy ra trước khi bắt đầu thực thi, Node.js sẽ biết trước cách các hàm và các hàm callback được gọi trong đoạn code và sẽ xác định được thứ tự chính xác của chúng. Do đó, trong trường hợp này, thứ tự thực thi của các hàm setTimeout, setImmediate và process.nextTick sẽ được đảm bảo theo cách e định nghĩa trong đoạn code.
Tuy nhiên, khi thực thi trực tiếp trên terminal, Node.js không biết trước toàn bộ đoạn code và các hàm callback được gọi. Thay vào đó, nó thực thi lệnh trong đoạn code theo từng bước và quyết định thứ tự thực thi dựa trên các điều kiện tại thời điểm đó. Điều này dẫn đến việc thứ tự thực thi của các hàm setTimeout, setImmediate và process.nextTick không được đảm bảo trong trường hợp này.
Tóm lại, khi chạy file JavaScript thông qua Node.js, việc biên dịch trước đảm bảo Node.js có thông tin đầy đủ về các hàm và các hàm callback trong file, từ đó đảm bảo thứ tự thực thi của các hàm bất đồng bộ. Trong khi đó, khi thực thi trực tiếp trên terminal, Node.js chỉ thực thi dòng code một cách tuần tự và không biết trước toàn bộ các hàm và các hàm callback trong đoạn code, dẫn đến việc không đảm bảo thứ tự thực thi của các hàm bất đồng bộ.
chào bạn, rất vui khi nhận được câu hỏi của bạn. Đối với những site đã có dữ liệu sẵn rồi, nếu bạn không phải coder thì mình khuyên bạn nên sử dụng thêm 1 service trung gian giữa website và kho lưu trữ của bạn, điển hình là CDN. Đa phần các dịch vụ CDN cũng đã tích hợp sẵn tính năng sẵn tính năng chuyển đổi ảnh JPG/PNG sang WEBP giúp bạn luôn.
THẢO LUẬN
Sếp chia sẻ chỉ có đúng 😁
good
Các lệnh này linux nào cũng giống nhau phải không ạ?
bài viết hay quá, tkss
@hoang2692 https://anonystick.com/blog-developer/su-dung-socket-io-trong-mo-hinh-mvc-express-va-nodejs-theo-2-video-source-2022051090927347
Đây là 1 cách setup cơ bản mình hay dùng với BE. Còn về FE thì bạn tham khảo từ các project trên github nha
series xịn xò quá bác
Mình hỏi chút con monstache này luôn lấy full document, mình chỉ muốn lấy trường nào thay đổi thôi thì làm như thế nào?
Cảm ơn bạn vì bài viết rất tâm huyết. Mình có làm theo, nhưng đến đoạn này thì bị lỗi :
Nhờ bạn check giúp mình với!
Thanks!
Bạn cho mình hỏi, mình setup socket như nào v ạ?
@devil_boom_129 E thấy rồi a nha. E cảm ơn a
quá hay, mình đang cần tìm bài viết này
@Clarence161095 vâng, em cảm ơn anh ạ 😁😁😁
@cuongpm When I start test, the script will launch new chrome, not the chrome on local which include metamask.
How can I use Metamask which was already installed?
Cảm ơn bạn nhé 😅 mình sẽ sửa lại nó trong tương lại.
Làm sao để tải mô hình lên vậy bạn?
Tải mô hình lên bằng cách nào vậy ạ?
Mình nghĩ là về chỗ setTimeOut bạn nên giải thích thêm về cơ chế event loop, vì nếu lỡ như có bạn nào không biết về event loop thì sẽ có thể dẫn đến hiểu nhầm hoặc đơn giản là sử dụng nhưng không biết vì sao hàm setTimeOut lại chạy sau
Mình có thắc mắc nếu dùng graph có gây ra vấn đề bảo mật gì không ? Khi mà client có thể trọc thẳng vào db mà ko qua 1 tầng validate nào
@NPThao À à hiểu rồi. 🤣 khác đấy... Khi e lưu đoạn code vào một file và chạy file đó, có một sự khác biệt trong cách Node.js xử lý Event Loop so với việc thực thi trực tiếp trên terminal.
Khi e chạy file JavaScript thông qua Node.js, quá trình xử lý sẽ diễn ra theo từng bước như sau:
Đọc và biên dịch toàn bộ nội dung của file JavaScript.
Thực thi các dòng code trong file JavaScript theo thứ tự từ trên xuống dưới.
Vì quá trình đọc và biên dịch file xảy ra trước khi bắt đầu thực thi, Node.js sẽ biết trước cách các hàm và các hàm callback được gọi trong đoạn code và sẽ xác định được thứ tự chính xác của chúng. Do đó, trong trường hợp này, thứ tự thực thi của các hàm setTimeout, setImmediate và process.nextTick sẽ được đảm bảo theo cách e định nghĩa trong đoạn code.
Tuy nhiên, khi thực thi trực tiếp trên terminal, Node.js không biết trước toàn bộ đoạn code và các hàm callback được gọi. Thay vào đó, nó thực thi lệnh trong đoạn code theo từng bước và quyết định thứ tự thực thi dựa trên các điều kiện tại thời điểm đó. Điều này dẫn đến việc thứ tự thực thi của các hàm setTimeout, setImmediate và process.nextTick không được đảm bảo trong trường hợp này.
Tóm lại, khi chạy file JavaScript thông qua Node.js, việc biên dịch trước đảm bảo Node.js có thông tin đầy đủ về các hàm và các hàm callback trong file, từ đó đảm bảo thứ tự thực thi của các hàm bất đồng bộ. Trong khi đó, khi thực thi trực tiếp trên terminal, Node.js chỉ thực thi dòng code một cách tuần tự và không biết trước toàn bộ các hàm và các hàm callback trong đoạn code, dẫn đến việc không đảm bảo thứ tự thực thi của các hàm bất đồng bộ.
chào bạn, rất vui khi nhận được câu hỏi của bạn. Đối với những site đã có dữ liệu sẵn rồi, nếu bạn không phải coder thì mình khuyên bạn nên sử dụng thêm 1 service trung gian giữa website và kho lưu trữ của bạn, điển hình là CDN. Đa phần các dịch vụ CDN cũng đã tích hợp sẵn tính năng sẵn tính năng chuyển đổi ảnh JPG/PNG sang WEBP giúp bạn luôn.