Thứ bảy, 20/07/2019 | 00:00 GMT+7

Bắt đầu với morgan: Phần mềm trung gian đăng nhập Node.js


morgan là một công cụ ghi log tuyệt vời mà bất kỳ ai làm việc với server HTTP trong Node.js nên học cách sử dụng. morgan là một phần mềm trung gian cho phép ta dễ dàng ghi lại các yêu cầu, lỗi và hơn thế nữa vào console . Nó dễ sử dụng, nhưng vẫn mạnh mẽ và có thể tùy chỉnh.

Cài đặt

Ta cần thêm morgan vào các phụ thuộc của dự án. Ta sẽ sử dụng npm , nhưng hãy thoải mái sử dụng Yarn . Điều này giả sử bạn đã khởi tạo một dự án npm trong folder làm việc của bạn .

$ npm install morgan --save

Bây giờ ta đã thêm morgan vào dự án của bạn , hãy yêu cầu nó.

const morgan = require('morgan');

Để đơn giản hơn, ví dụ của ta sẽ sử dụng server Express , nhưng morgan cũng hoạt động với module Node.js http .

const express = require('express');
const morgan = require('morgan');

const app = express();

app.listen(3000, () => {
    console.debug('App listening on :3000');
});

Tuyệt vời, server Express của ta đã được cài đặt , bây giờ hãy thêm một số ghi log yêu cầu!

Chuỗi định dạng xác định trước

morgan đi kèm với một bộ cài đặt trước, là plug-and-play. Để sử dụng chúng, ta thực hiện như sau: morgan('tiny') Trong trường hợp này, tiny là tên của chuỗi định dạng được định nghĩa mà ta đang sử dụng.

Sử dụng morgan với Express

Vì morgan là một phần mềm trung gian nên việc sử dụng nó với thông tin như Express thực sự dễ dàng. Tất cả những gì ta phải làm là:

const app = express();

app.use(morgan(/* format string here */));

Định dạng chuỗi

Các chuỗi mẫu mà morgan sử dụng được gọi là chuỗi định dạng. Một chuỗi định dạng có thể trông giống như thế này.

:method :url :status :res[content-length] - :response-time ms

Token

Mã thông báo là các từ khóa theo sau : 's. Các mã thông báo được định nghĩa là các chức năng. Tiếp theo, ta sẽ xem xét việc tạo các mã thông báo tùy chỉnh.

Tạo mã thông báo của riêng ta

Một trong những điều tuyệt vời mà morgan cho phép ta làm là tạo ra các token của riêng mình. Nó cực kỳ hữu ích, linh hoạt và dễ làm. Tất cả những gì ta phải làm là gọi morgan.token(name, function) .

Đối số đầu tiên mà ta chuyển vào là tên của mã thông báo. If I do morgan.token('my-token', ...); , ví dụ, tôi sẽ gọi mã thông báo đó bằng :my-token .

Đối số thứ hai là một hàm gọi lại. morgan sẽ chạy điều này mỗi khi nó ghi lại thứ gì đó bằng cách sử dụng mã thông báo. morgan sẽ truyền hai tham số cho hàm: reqres . Hãy tạo một mã thông báo hiển thị domain mà yêu cầu đã được gửi qua.

morgan.token('host', function(req, res) {
    return req.hostname;
});

Sử dụng mã thông báo tùy chỉnh của ta

Sử dụng mã thông báo ta vừa tạo thật dễ dàng. Chỉ cần gọi mã thông báo giống như ta làm với bất kỳ mã thông báo nào khác.

morgan(':method :host :status :res[content-length] - :response-time ms'); // This is a modified version of morgan's tiny predefined format string.

Tạo mã thông báo tùy chỉnh với đối số tùy chỉnh

Bạn có thể đã nhận thấy rằng dấu ngoặc ( [ ] ) đã xuất hiện một vài lần trong chuỗi định dạng của ta sau mã thông báo. Dấu ngoặc vuông biểu thị các đối số được chuyển đến mã thông báo. Ta có thể làm cho các thẻ của ta chấp nhận các đối số bổ sung. Hãy tạo một mã thông báo lấy một trong các tham số từ yêu cầu.

morgan.token('param', function(req, res, param) {
    return req.params[param];
});

Và để sử dụng nó:

morgan(':method :host :status :param[id] :res[content-length] - :response-time ms');

Sử dụng morgan với Mô-đun http tích hợp

Sử dụng morgan với module http hợp Node.js cũng rất dễ dàng. Đây là một ví dụ từ tài liệu morgan .

Ta đã hoàn thành, yay! Đó là tất cả những gì ta sẽ đề cập trong bài viết này, nhưng tôi khuyên bạn nên xem tài liệu morgan . Hãy theo dõi, ta có thể sẽ có nhiều bài viết về morgan hơn nữa! Cảm ơn vì đã đọc!


Tags:

Các tin liên quan