Các phương pháp hay nhất của Nodejs năm 2023

Tram Ho

Không sử dụng các hàm JSON.parseJSON.stringify

Tôi đã sử dụng cái này trong một thời gian dài và nó rất quan trọng đối với tôi, nhưng khi lượng dữ liệu tôi đưa vào tăng lên, nó sẽ mất rất nhiều thời gian và có thể làm chậm quá trình. Khi lượng dữ liệu tăng lên, thời gian cũng tăng lên. Nếu ứng dụng của tôi tiếp nhận và xử lý các đối tượng JSON lớn từ người dùng, thì tôi nên cẩn thận về lượng dữ liệu mình tiếp nhận.

Lý do tại sao các chức năng này mất nhiều thời gian để hoàn thành là vì chúng đang cố xử lý toàn bộ đầu vào cùng một lúc. Để làm cho chúng nhanh hơn, bạn có thể sử dụng luồng để chia đối tượng hoặc chuỗi thành các phần nhỏ hơn. Có một số mô-đun npm cung cấp API JSON không đồng bộ. Nếu bạn đang xử lý dữ liệu có kích thước từ nhỏ đến trung bình, JSON.parseJSON.stringify sẽ hoạt động tốt, nhưng nếu bạn đang xử lý các tập dữ liệu lớn, bạn nên xem xét các tùy chọn khác sau:

hình ảnh.png

Thêm một máy ghi nhật ký

Thư viện nhật ký có thể giúp bạn theo dõi các thông báo, lỗi và yêu cầu thành công mà ứng dụng của bạn nhận được. Morgan là một thư viện cho phép bạn lưu trữ nhật ký về các yêu cầu HTTP đã được gửi. Bằng cách thêm Morgan làm phần mềm trung gian, nó sẽ ghi nhật ký vào bảng điều khiển. Bạn cũng có thể xem xét các cơ chế lưu trữ khác để lưu trữ nhật ký. Morgan sẽ giúp bạn phân tích dữ liệu và cải thiện ứng dụng của bạn.

Tôi khuyên bạn nên sử dụng Winston để theo dõi các lỗi và thông báo. Nó rất đơn giản để sử dụng và có thể lưu trữ thông tin ở những nơi khác nhau như tệp, cơ sở dữ liệu và bảng điều khiển. Bạn cũng có thể chọn mức độ chi tiết mà mình muốn xem, chẳng hạn như thông báo, lỗi, cảnh báo và thông tin.

Những gì tôi thường làm là tạo một tệp nhật ký riêng và xuất tệp đó.

Chọn một API để sử dụng cho một tác vụ cụ thể

Có thể khó tổ chức các API, nhưng phương pháp này có thể giúp làm cho chúng độc lập hơn, dễ bảo trì hơn và phân chia nhiệm vụ. Nó cũng làm cho ứng dụng của bạn chạy nhanh hơn nếu bạn đặt tất cả các hoạt động trong một API.

Ví dụ: khi tạo biểu mẫu chấp nhận cả văn bản và video, tốt nhất nên có hai API riêng biệt: một để lưu trữ văn bản và một để tải video lên trong thời gian thực. Điều này sẽ làm cho thời gian đáp ứng nhanh hơn.

hình ảnh.png

Tách mã thành các gói npm

Nếu bạn đang làm việc trên nhiều dự án và thấy mình sử dụng đi sử dụng lại cùng một mã, bạn nên đặt mã đó vào một gói npm. Điều này sẽ giúp bạn tiết kiệm thời gian về lâu dài và giúp cộng tác với những người khác dễ dàng hơn.

hình ảnh.png

Thực hiện các phép tính nặng không đồng bộ

Node JS rất tốt trong việc xử lý các hoạt động đầu vào và đầu ra, nhưng nó không phù hợp với các tính toán phức tạp, mất nhiều thời gian. Nếu bạn cố gắng thêm một số lượng lớn số nguyên, ứng dụng của bạn có thể bị kẹt và không thể phục vụ các yêu cầu, vì Node JS chỉ sử dụng một luồng để xử lý tất cả các yêu cầu và không tạo một luồng mới cho mỗi yêu cầu.

Nếu Vòng lặp sự kiện mất quá nhiều thời gian để xử lý một tác vụ, tất cả các yêu cầu hiện tại và yêu cầu mới sẽ không được xử lý. Chúng ta cần nhanh chóng tìm ra giải pháp!

Bạn có thể sử dụng hàm setImmediate để đảm bảo rằng hàm chặn của bạn được ưu tiên trong vòng lặp sự kiện. Điều này có nghĩa là Node.js sẽ ưu tiên khởi tạo, gán và đăng ký mã không đồng bộ trước khi chạy hàm setImmediate.

Vòng lặp sự kiện không chạy hàm processData ngay lập tức. Thay vào đó, nó đăng ký chức năng ngay lập tức đã đặt và cho phép mã khác chạy trước. Nếu bạn cần làm điều gì đó phức tạp, cách tiếp cận đầu tiên không phải là lựa chọn tốt nhất. Điều này là do nó chỉ sử dụng Vòng lặp sự kiện, vì vậy nó sẽ không tận dụng lợi thế của nhiều lõi. Giải pháp tốt hơn là sử dụng mô-đun Node JS worker_threads để tạo một luồng riêng để thực hiện các tác vụ đó.

Không lưu trữ nhiều thông tin trong một biến.

Các biến được lưu trữ trong RAM (Bộ nhớ truy cập ngẫu nhiên), giúp lưu và truy cập chúng nhanh chóng. Nếu bạn cần lưu trữ nhiều dữ liệu, tốt nhất nên đặt nó trong cơ sở dữ liệu, vì nếu dữ liệu quá lớn, nó có thể làm chậm máy chủ và ứng dụng của bạn.

Tránh xa

Bạn nên tránh làm những việc không phải là lựa chọn tốt nhất, mặc dù nó có vẻ hài hước. Hãy đảm bảo thực hiện ba điểm này một cách nghiêm túc.

  • Không sử dụng phiên bản của chức năng yêu cầu bạn đợi nó hoàn thành trước khi tiếp tục, chẳng hạn như readFileSync. Thay vào đó, hãy sử dụng phiên bản cho phép bạn tiếp tục với các tác vụ khác trong khi nó đang chạy, chẳng hạn như phiên bản gọi lại hoặc lời hứa.
  • Không đưa nhiều thông tin vào yêu cầu hoặc phản hồi khi bạn đang gửi dữ liệu, vì điều đó có thể làm chậm thời gian phản hồi. Nếu bạn cần gửi nhiều dữ liệu, thay vào đó hãy sử dụng phương thức truyền trực tuyến.
  • Không sử dụng nhiều dữ liệu, chẳng hạn như các tệp JSON lớn, với Node.js yêu cầu vì nó sẽ làm chậm luồng chính. Đặt dữ liệu của bạn vào cơ sở dữ liệu và chỉ lấy những gì bạn cần. Nếu bạn phải lưu trữ nó trong một tệp, hãy sử dụng tính năng phát trực tuyến để lấy các phần của dữ liệu theo cách không đồng bộ.

Và cuối cùng

Như mọi khi, tôi hy vọng bạn thích bài viết này và học được điều gì đó mới. Xin cảm ơn và hẹn gặp lại các bạn trong những bài viết tiếp theo!

Nếu các bạn thích bài viết này thì hãy cho mình 1 like và subscribe để ủng hộ mình nhé. Cảm ơn.

Nguồn

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo