20 modules của Node js bạn cần biết

0
1813
20-module-can-biet
20-module-can-biet

Xin chào mọi người

Hôm nay mình sẽ giới thiệu cho mọi người 20 modules của node mà bạn cần phải biết để áp dụng vào công việc:

01. Manipulate images

GraphicsMagick và ImageMagick là hai công cụ phổ biến để tạo, chỉnh sửa, soạn và chuyển đổi hình ảnh. Nhờ có mô-đun Node.js, bạn có thể sử dụng cả hai công cụ trực tiếp từ bên trong mã JavaScript của mình. Module hỗ trợ tất cả các hoạt động hình ảnh điển hình – thay đổi kích cỡ, cắt và mã hóa thành tên chỉ một vài.

const gm = require('gm');
gm('/path/to/image.jpg')
  .resize(500, 250)
  .autoOrient()
  .write(response, error => {});

02. Process images

Sharp dựa trên thư viện xử lý hình ảnh libvips cực nhanh và tuyên bố nhanh hơn 4 đến 5 lần so với ImageMagick hoặc GraphicsMagick khi nói đến việc nén và thay đổi kích thước hình ảnh. Nó hỗ trợ các hình ảnh JPEG, PNG, WebP, TIFF, GIF và SVG, và xuất dữ liệu vào các luồng pixel thô, JPEG, PNG hoặc WebP không nén.

03. Generate sprite sheets

Các trang Sprite là các tệp bitmap chứa nhiều hình ảnh nhỏ khác nhau (ví dụ như các biểu tượng) và chúng thường được sử dụng để giảm chi phí tải xuống hình ảnh và tăng tốc độ tải trang tổng thể. Tạo thủ công các trang sprite rất cồng kềnh, nhưng với spritesmith bạn có thể tự động hóa quá trình. Mô-đun này lấy một thư mục làm đầu vào và kết hợp tất cả các hình ảnh trong đó thành một trang tính. Nó cũng tạo ra một tệp JSON chứa tất cả các tọa độ cho từng hình ảnh trong hình ảnh kết quả mà bạn có thể sao chép trực tiếp trong mã CSS của mình.

04. Format dates

API JavaScript chuẩn đã đi kèm với đối tượng Date để làm việc với ngày tháng và thời gian. Tuy nhiên, đối tượng này không thân thiện với người dùng khi nói đến ngày in và định dạng. Mặt khác, Moment.js cung cấp API sạch, rất dễ đọc và dễ hiểu

moment()
  .add(7, 'days')
  .subtract(1, 'months')
  .year(2009)
  .hours(0)
  .minutes(0)
.seconds(0);

05. Validate strings

Khi cung cấp biểu mẫu trên trang web, bạn luôn phải xác thực giá trị mà người dùng nhập vào – không chỉ ở phía máy khách mà còn ở phía máy chủ để ngăn chặn dữ liệu độc hại. Một mô-đun có thể giúp bạn ở đây là validator.js. Nó cung cấp một số phương thức để xác nhận các chuỗi, từ isEmail () và isURL () tới isMobilePhone () hoặc isCreditCard (), cộng với bạn có thể sử dụng nó trên máy chủ và phía máy khách.

06. Work with colour values

Việc chuyển đổi các giá trị màu từ một định dạng này thành một định dạng khác là một trong các tác vụ mà mọi nhà phát triển giao diện người dùng cần thực hiện một lần trong một thời gian. TinyColor2 xử lý vấn đề này, và nó có sẵn cho Node.js cũng như cho các trình duyệt. Nó cung cấp một tập hợp các phương pháp chuyển đổi (ví dụ: toHexString (), toRGBString ()), cũng như các phương thức cho tất cả các loại hoạt động màu (ví dụ: lighten (), saturate (), complement ()).

07. Generate PDF files

Bạn muốn tự động tạo tệp PDF? , PDFKit giúp bạn làm được điều này. Nó hỗ trợ nhúng các kiểu phông chữ, nhúng hình ảnh và định nghĩa đồ họa vector, hoặc theo lập trình (sử dụng API giống Canvas) hoặc bằng cách chỉ định đường dẫn SVG. Hơn nữa, bạn có thể xác định liên kết, bao gồm ghi chú, đánh dấu văn bản và hơn thế nữa.

08. Process HTML files

Bạn có muốn xử lý mã HTML ở phía máy chủ và bỏ qua các phương thức tiện ích jQuery không? ThenCheerio giúp bạn làm điều này. Mặc dù nó chỉ thực hiện một tập hợp con của thư viện jQuery cốt lõi, nó làm cho việc xử lý HTML ở phía máy chủ dễ dàng hơn nhiều. Nó được xây dựng trên đầu trang của mô-đun htmlparser2, phân tích cú pháp HTML, XML và RSS. Thêm vào đó, theo tiêu chuẩn, nó nhanh gấp tám lần jsdom, một mô đun khác để làm việc với DOM ở phía máy chủ.

09. Process CSV files

Định dạng CSV (giá trị được phân cách bằng dấu phẩy) thường được sử dụng khi trao đổi dữ liệu dựa trên bảng. Ví dụ, Microsoft Excel cho phép bạn xuất hoặc nhập dữ liệu của bạn ở định dạng đó. node-cvg giúp đơn giản hóa quá trình làm việc với dữ liệu CSV trong JavaScript và cung cấp các chức năng để tạo, phân tích cú pháp, chuyển đổi và xâu chuỗi CSV. Nó đi kèm với một API gọi lại, API luồng và API đồng bộ, do đó bạn có thể chọn kiểu bạn thích.

10. Process markdown files

Đánh dấu là một định dạng phổ biến khi tạo nội dung cho web. Nếu bạn muốn xử lý nội dung markdown theo chương trình (tức là viết trình soạn thảo markdown của riêng bạn), đánh dấu là đáng xem. Phải mất một chuỗi mã markdown làm đầu vào và xuất ra mã HTML thích hợp. Thậm chí có thể tùy chỉnh thêm đầu ra HTML đó bằng cách cung cấp các trình kết xuất tùy chỉnh.

11. Minify images

Một mô-đun rất tốt để thu nhỏ và tối ưu hóa hình ảnh là imagemin, có thể được sử dụng theo chương trình (thông qua dòng lệnh), như một plugin gulp hoặc Grunt, hoặc thông qua imagemin-app (một ứng dụng đồ họa có sẵn cho tất cả ba hệ điều hành lớn). Kiến trúc dựa trên plugin của nó có nghĩa là nó cũng rất linh hoạt và có thể được mở rộng để hỗ trợ các định dạng hình ảnh mới.

12. Minify HTML

Sau khi rút gọn hình ảnh, bạn nên xem xét giảm thiểu HTML của ứng dụng web của mình. Module HTMLMinifier có thể được sử dụng thông qua dòng lệnh, nhưng cũng có sẵn cho gulp và Grunt. Trên hết, có các giải pháp phần mềm trung gian để tích hợp nó vào các khung công tác web như Koa và Express, vì vậy bạn có thể rút ngắn HTML trực tiếp trong thời gian chạy trước khi phân phối nó cho khách hàng thông qua HTTP. Theo tiêu chuẩn trên trang chủ của mô-đun, đó là trình chỉnh sửa HTML tốt nhất hiện

13. Minify CSS

Cũng như hình ảnh và HTML, bạn nên cân nhắc việc rút gọn CSS bạn gửi cho người dùng. Một mô-đun rất nhanh trong lĩnh vực này là clean-css, có thể được sử dụng cả từ dòng lệnh và lập trình. Nó đi kèm với sự hỗ trợ cho các bản đồ nguồn và cũng cung cấp các chế độ tương thích khác nhau để đảm bảo CSS được rút gọn tương thích với các phiên bản cũ hơn của IE.

14. Minify JavaScript

Mô-đun phổ biến UglifyJS2 thường được sử dụng để giảm thiểu mã JavaScript, nhưng vì các tính năng phân tích cú pháp của nó, về nguyên tắc bạn có thể sử dụng nó để làm bất cứ điều gì liên quan đến việc xử lý mã JavaScript. UglifyJS2 phân tích mã JavaScript thành một cây cú pháp trừu tượng (một mô hình đối tượng đại diện cho mã) và cung cấp một thành phần khung đi bộ cây có thể được sử dụng để đi qua cây đó. Bạn đã từng muốn viết trình tối ưu hóa JavaScript của riêng mình chưa? Sau đó, UglifyJS2 là dành cho bạn.

15. Minify SVG

Cuối cùng nhưng không kém phần quan trọng khi nói đến việc rút gọn, đừng quên giảm thiểu nội dung SVG. Định dạng này đã tạo ra sự trở lại tuyệt vời trong vài năm qua nhờ có hỗ trợ công cụ và trình duyệt tuyệt vời của nó. Thật không may, nội dung SVG được tạo ra bởi các biên tập viên thường chứa thông tin dư thừa và vô dụng như bình luận và siêu dữ liệu.

Với SVGO, bạn có thể dễ dàng xóa thông tin đó và tạo một phiên bản rút gọn của nội dung SVG của bạn. Mô-đun có kiến trúc dựa trên plugin, với (gần như) mọi tối ưu hóa được triển khai dưới dạng một plugin riêng biệt. Như với tất cả các mô-đun khác về việc rút gọn, SVGO có thể được sử dụng thông qua dòng lệnh hoặc lập trình.

16. Log application output

Khi bạn đang xử lý các ứng dụng web phức tạp, một thư viện đăng nhập thích hợp có thể rất hữu ích để giúp bạn tìm ra các vấn đề thời gian chạy, cả trong quá trình phát triển và trong sản xuất. Một mô-đun rất phổ biến trong lĩnh vực này là thư viện winston. Nó hỗ trợ nhiều phương tiện, có nghĩa là bạn có thể nói winston chỉ cần đăng nhập vào giao diện điều khiển, nhưng cũng lưu trữ nhật ký trong các tệp hoặc trong cơ sở dữ liệu (như CouchDB, MongoDB hoặc Redis) hoặc thậm chí truyền chúng tới điểm cuối HTTP để xử lý tiếp.

17. Generate fake data

Khi triển khai hoặc thử nghiệm giao diện người dùng, bạn thường cần dữ liệu giả như địa chỉ email, tên người dùng, địa chỉ đường phố và số điện thoại. Đó là nơi faker.js xuất hiện. Điều này có thể được sử dụng ở phía máy chủ (như một mô đun cho Node.js) hoặc ở phía máy khách và cung cấp một tập hợp các phương thức để tạo ra dữ liệu giả. Cần một tên người dùng? Chỉ cần gọi faker.internet.userName () và bạn nhận được một ngẫu nhiên. Cần một tên công ty giả mạo? Gọi faker.company.companyName () và bạn nhận được một cái. Và có nhiều phương pháp hơn cho tất cả các loại dữ liệu.

18. Send emails

Gửi email theo chương trình là một trong những tính năng bạn cần thường xuyên khi triển khai trang web. Từ xác nhận đăng ký, để thông báo cho người dùng về các sự kiện đặc biệt hoặc gửi bản tin, có rất nhiều trường hợp sử dụng yêu cầu bạn liên lạc với người dùng.

API Node.js chuẩn không cung cấp tính năng như vậy, nhưng may mắn thay, mô-đun Nodemailer lấp đầy khoảng trống này. Nó hỗ trợ cả nội dung văn bản và HTML, hình ảnh nhúng và – quan trọng nhất – nó sử dụng giao thức SSL / STARTTLS an toàn.

19. Create REST APIs

REST là chuẩn thực tế khi triển khai các ứng dụng web sử dụng các dịch vụ web. Các khung như Express tạo thuận lợi cho việc tạo ra các dịch vụ web như vậy, nhưng thường đi kèm với rất nhiều tính năng như tạo khuôn mẫu và hiển thị – tùy thuộc vào trường hợp sử dụng – bạn có thể không cần. Mặt khác, mô-đun Node.js tập trung vào việc tạo và gỡ rối các API REST. Nó có một API rất giống với phần mềm kết nối trung gian (là cơ sở cho Express) nhưng cho phép bạn kiểm soát nhiều hơn các tương tác HTTP và cũng hỗ trợ DTrace để gỡ rối các ứng dụng trong thời gian thực.

20. Create CLI applications

Đã có hàng tấn các ứng dụng dòng lệnh (các ứng dụng CLI) được viết bằng Node.js để xử lý các trường hợp sử dụng khác nhau (xem, ví dụ, các mô-đun nói trên để rút gọn). Nếu bạn muốn viết ứng dụng CLI của riêng mình, mô-đun Commander.js là một điểm khởi đầu rất tốt. Nó cung cấp một API thông thạo để xác định các khía cạnh khác nhau của các ứng dụng CLI như các lệnh, tùy chọn, bí danh, trợ giúp và nhiều thứ khác, và nó thực sự đơn giản hóa quá trình tạo ứng dụng cho dòng lệnh.