Mô-đun `morgan` có liên quan gì với các ứng dụng express?


82

Trong một hướng dẫn cấp tốc, tác giả đã sử dụng npm module morgan. Morgan có thể làm gì cho một ứng dụng express? Bất cứ ai có thể giúp tôi hiểu điều này?

Nhận được điều này bằng cách googling, nhưng tôi không hiểu bất kỳ điều gì ở đây:

var express = require('express')
var morgan  = require('morgan')

var app = express()
app.use(morgan('combined'))
morgan('combined')

morgan(':remote-addr :method :url')

morgan(function (tokens, req, res) {
  return req.method + ' ' + req.url
})

1
morganlà trình ghi nhật ký npmjs.org/package/morgan . Khi nghi ngờ, hãy truy cập trang web npm.
nowk

15
câu hỏi không chỉ là một nghi ngờ, tôi đang tìm kiếm một số ví dụ có ý nghĩa để hiểu đúng.
3gwebtrain

Câu trả lời:


106

Morgan được sử dụng để ghi chi tiết yêu cầu. Tuy nhiên, đoạn mã trong câu hỏi của bạn không có ý nghĩa vì nó không thực sự là một đoạn mã mạch lạc từ đầu đến cuối. Đây là một loạt các ví dụ về các loại tùy chọn khác nhau mà bạn có thể chuyển cho morgan. Trong một chương trình thực, bạn sẽ chỉ cần một trong số chúng. Ví dụ:

var express = require('express')
var morgan  = require('morgan')

var app = express()
//This tells express to log via morgan
//and morgan to log in the "combined" pre-defined format
app.use(morgan('combined'))
//That's it. Everything in your snippet after this are just
//other variations your might want to use

5
Xin lỗi, tôi không hiểu "kết hợp", bạn có thể giải thích nó không?
Kannan T

14
Morgan hỗ trợ một số định dạng ghi nhật ký được xác định trước với các tên / cấu trúc quen thuộc. kết hợp, chung, dev, ngắn, nhỏ. Chuỗi đó cho morgan biết bạn muốn nó sử dụng định dạng nhật ký nào. npmjs.com/package/morgan#predefined-formats
Peter Lyons.

3
@RotimiBest Theo mặc định, các bản ghi ghi theo tiêu chuẩn (đầu ra bảng điều khiển bình thường của chương trình của bạn). Bạn cũng có thể chuyển các tùy chọn cấu hình nếu bạn muốn ghi vào một tệp cụ thể trên hệ thống tệp.
Peter Lyons

23

Morgan về cơ bản là một trình ghi nhật ký, theo bất kỳ yêu cầu nào được thực hiện, nó sẽ tự động tạo ra nhật ký.


2
Có thể là một câu hỏi ngớ ngẩn nhưng các bản ghi được lưu trữ ở đâu, trong một tệp hoặc std.out?
rotimi-best

2
@RotimiBest mô-đun theo mặc định ghi vào đầu ra (đầu ra bảng điều khiển). Tuy nhiên, có thể dễ dàng cấu hình để ghi các nhật ký này vào một tệp tùy chỉnh trên hệ thống tệp.
Krishna Ganeriwal,

5

Morgan: là một phần mềm trung gian khác của trình ghi nhật ký yêu cầu HTTP cho Node.js. Nó đơn giản hóa quá trình ghi yêu cầu vào ứng dụng của bạn. Bạn có thể nghĩ về Morgan như một người trợ giúp thu thập nhật ký từ máy chủ của bạn, chẳng hạn như nhật ký yêu cầu của bạn. Nó tiết kiệm thời gian cho các nhà phát triển vì họ không phải tạo các nhật ký chung theo cách thủ công. Nó chuẩn hóa và tự động tạo nhật ký yêu cầu.

Morgan có thể hoạt động độc lập, nhưng thường được sử dụng kết hợp với Winston. Winston có thể vận chuyển các bản ghi đến một vị trí bên ngoài hoặc truy vấn chúng khi phân tích một vấn đề.


bạn có thể cho một ví dụ để sử dụng morgan, tôi không hiểu bạn.
Rohan Devaki

3

Morgan là một trình ghi phần mềm trung gian yêu cầu HTTP phổ biến cho Node.js và về cơ bản được sử dụng như một trình ghi nhật ký. Nó có thể được sử dụng với gói wonton của nút js để hợp nhất nhật ký dữ liệu yêu cầu HTTP với thông tin khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.