"Morgan" modülünün ekspres uygulamalarla ne ilgisi var?


84

Ekspres bir öğreticide, yazar npm module morgan. Morgan hızlı bir uygulama için ne yapabilir? Biri bunu anlamama yardım edebilir mi?

Bunu googling yoluyla aldım, ancak burada hiçbir şey anlamıyorum:

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
morganbir kaydedicidir npmjs.org/package/morgan . Şüphe duyduğunuzda npm sitesine gidin.
nowk

16
soru sadece bir şüphe değil, doğru bir şekilde anlamak için anlamlı bir örnek arıyorum.
3gwebtrain

Yanıtlar:


109

Morgan, istek ayrıntılarını kaydetmek için kullanılır. Ancak, sorunuzdaki kod parçacığı bir anlam ifade etmiyor çünkü bu aslında yukarıdan aşağıya tutarlı tek bir parçacık değil. Morgan'a iletebileceğiniz çeşitli seçeneklerin bir dizi örneğidir. Gerçek bir programda bunlardan sadece birine ihtiyacınız olacaktır. Örneğin:

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
Üzgünüm, "birleşik" kelimesini anlamadım, lütfen açıklar mısınız?
Kannan T

15
Morgan, iyi bilinen adlar / yapılar ile önceden tanımlanmış bir dizi günlük formatını destekler. birleşik, ortak, dev, kısa, küçük. Bu dize, morgan'a hangi günlük biçimini kullanmasını istediğinizi söylüyor. npmjs.com/package/morgan#predefined-formats
Peter Lyons

3
@RotimiBest Varsayılan olarak günlükler standart olarak yazılır (programınızın normal konsol çıktısı). Dosya sistemindeki belirli bir dosyaya yazmak istiyorsanız, yapılandırma seçeneklerini de iletebilirsiniz.
Peter Lyons

25

Morgan temelde bir kaydedicidir, yapılan herhangi bir talep üzerine, günlükleri otomatik olarak oluşturur.


2
Belki aptalca bir soru ama günlükler bir dosyada veya std.out'ta nerede saklanıyor?
rotimi-best

2
@RotimiBest modül varsayılan olarak standart çıkışa yazar (konsol çıkışı). Ancak, bu günlükleri dosya sistemindeki özel bir dosyaya yazmak için kolayca yapılandırılabilir.
Krishna Ganeriwal

5

Morgan: Node.js için başka bir HTTP istek kaydedici ara yazılımıdır. Uygulamanıza istekleri günlüğe kaydetme sürecini basitleştirir. Morgan'ı, istek günlükleriniz gibi günlükleri sunucunuzdan toplayan bir yardımcı olarak düşünebilirsiniz. Geliştiricilere zaman kazandırır çünkü ortak günlükleri manuel olarak oluşturmak zorunda kalmazlar. Standartlaştırır ve otomatik olarak istek günlükleri oluşturur.

Morgan bağımsız olarak çalışabilir, ancak genellikle Winston ile birlikte kullanılır. Winston, günlükleri harici bir konuma taşıyabilir veya bir sorunu analiz ederken bunları sorgulayabilir.


morgan kullanımı için bir örnek verebilir misin, seni anlamıyorum.
Rohan Devaki

3

Morgan, Node.js için popüler bir HTTP istek ara yazılım kaydedicisidir ve temelde bir günlükleyici olarak kullanılır. HTTP istek veri günlüklerini diğer bilgilerle birleştirmek için node js'nin winston paketi ile birlikte kullanılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.