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: req
và res
. 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!
Các tin liên quan