如何在 nodejs 中为 morgan 指定特定格式?

How can I specify a specific format for morgan in nodejs?

在 nodejs 中使用 morgan/express,如何以以下格式显示控制台输出:Day/Month/Year:HH:MM:SS GET/POST "some-api-endpoint-path"?

我尝试过使用 "combined" 格式,但收效甚微。

Morgan 有一个预定义令牌列表,您可以在此 address.

找到

在您的情况下,您想使用 datemethodurl。因此,您的摩根设置将是:

app.use(morgan(':date :method ":url"'));

这应该足以让您了解它的基础知识和 fiddle 以获得最适合您的日志输出。

如果您想创建自己的令牌,则必须调用 morgan.token()。以下是使用 Express 和 Passport 提供的 req.user 设置令牌 username 的示例:

morgan.token('username', function (req, res) { 
    var username = req.user ? req.user.username: "Guest";
    return username;
});

这将使它可用作日志记录的令牌,您将能够调用:

app.use(morgan(':username :date :method :url'));