最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js 中 morgan 依賴及基本使用詳解

 更新時(shí)間:2025年02月18日 11:07:41   作者:yqcoder  
文章介紹了Node.js中`morgan`依賴的安裝、基本使用、日志格式(如`dev`、`combined`、`common`等),以及如何自定義日志格式和將日志寫(xiě)入文件,感興趣的朋友一起看看吧

記錄每個(gè) HTTP 請(qǐng)求的詳細(xì)信息,方便開(kāi)發(fā)者調(diào)試和監(jiān)控應(yīng)用程序。

一、安裝

npm install morgan

二、基本使用

const express = require("express");
const morgan = require("morgan");
const app = express();
// 使用 morgan 中間件,默認(rèn)日志格式為 'dev'
app.use(morgan("dev"));
app.get("/", (req, res) => {
  res.send("Hello, World!");
});
const port = 3000;
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

三、日志格式

`morgan` 提供了多種內(nèi)置的日志格式,每種格式輸出的信息不同。

1. `dev`

這是開(kāi)發(fā)環(huán)境常用的格式,輸出簡(jiǎn)潔且包含顏色編碼,便于查看。示例輸出:

含義分別為:請(qǐng)求方法(`GET`)、請(qǐng)求路徑(`/`)、響應(yīng)狀態(tài)碼(`200`)、響應(yīng)時(shí)間(`3.029 ms`)和響應(yīng)內(nèi)容長(zhǎng)度(`12`)。

GET / 200 3.029 ms - 12

2. `combined`

這是一種類似于 Apache 服務(wù)器的通用日志格式,包含客戶端 IP 地址、用戶代理等詳細(xì)信息。示例輸出:

::1 - - [24/Jan/2025:10:30:00 +0000] "GET / HTTP/1.1" 200 12 "http://localhost:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"

3. `common`

和 `combined` 格式類似,但不包含用戶代理信息。示例輸出:

::1 - - [24/Jan/2025:10:30:00 +0000] "GET / HTTP/1.1" 200 12

4. `short`

輸出的信息比 `dev` 格式多一些,但比 `combined` 格式簡(jiǎn)潔。示例輸出:

::1 - GET / HTTP/1.1 200 12 - 3.029 ms

5. `tiny`

輸出最簡(jiǎn)潔的日志信息,只包含請(qǐng)求方法、路徑、狀態(tài)碼、響應(yīng)內(nèi)容長(zhǎng)度和響應(yīng)時(shí)間。示例輸出:

GET / 200 12 - 3.029 ms

四、自定義日志格式

使用 `morgan.token()` 方法定義了一個(gè)自定義的日志令牌 `custom-date`,用于輸出當(dāng)前時(shí)間的 ISO 格式。

const express = require("express");
const morgan = require("morgan");
const app = express();
// 自定義日志格式
morgan.token("custom-date", () => {
  return new Date().toISOString();
});
const customFormat =
  ":custom-date :method :url :status :res[content-length] - :response-time ms";
app.use(morgan(customFormat));
app.get("/", (req, res) => {
  res.send("Hello, World!");
});
const port = 3000;
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

五、將日志寫(xiě)入文件

`morgan` 還可以將日志信息寫(xiě)入文件,而不只是輸出到控制臺(tái)。

const express = require("express");
const morgan = require("morgan");
const fs = require("fs");
const path = require("path");
const app = express();
// 創(chuàng)建一個(gè)寫(xiě)入流(追加模式)
const accessLogStream = fs.createWriteStream(
  path.join(__dirname, "access.log"),
  { flags: "a" }
);
// 使用 morgan 并將日志寫(xiě)入文件
app.use(morgan("combined", { stream: accessLogStream }));
app.get("/", (req, res) => {
  res.send("Hello, World!");
});
const port = 3000;
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

這里使用 `fs.createWriteStream()` 方法創(chuàng)建一個(gè)寫(xiě)入流,將 `morgan` 的日志信息追加到 `access.log` 文件中。

到此這篇關(guān)于Node.js 中 morgan 依賴詳解的文章就介紹到這了,更多相關(guān)Node.js morgan 依賴內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 開(kāi)箱即用的Node.js+Mysql模塊封裝實(shí)現(xiàn)詳解

    開(kāi)箱即用的Node.js+Mysql模塊封裝實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了開(kāi)箱即用的Node.js+Mysql模塊封裝實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 詳解如何用typescript開(kāi)發(fā)koa2的二三事

    詳解如何用typescript開(kāi)發(fā)koa2的二三事

    這篇文章主要介紹了詳解如何用typescript開(kāi)發(fā)koa2的二三事,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 詳解Node.js如何處理ES6模塊

    詳解Node.js如何處理ES6模塊

    學(xué)習(xí)JavaScript語(yǔ)言,你會(huì)發(fā)現(xiàn)它有兩種格式的模塊。一種是ES6模塊,簡(jiǎn)稱ESM;另一種是Node.js專用的CommonJS模塊,簡(jiǎn)稱 CJS。這兩種模塊不兼容。很多人使用Node.js,只會(huì)用require()加載模塊,遇到ES6模塊就不知道該怎么辦。本文就來(lái)談?wù)凟S6模塊在Node.js里面怎么使用。
    2021-05-05
  • 關(guān)于Node.js中的JXcore打包示例

    關(guān)于Node.js中的JXcore打包示例

    這篇文章主要介紹了關(guān)于Node.js中的JXcore打包示例,JXcore 是一個(gè)支持多線程的 Node.js 發(fā)行版本,基本不需要對(duì)你現(xiàn)有的代碼做任何改動(dòng)就可以直接線程安全地以多線程運(yùn)行,需要的朋友可以參考下
    2023-05-05
  • Node.js同時(shí)安裝多個(gè)版本及相關(guān)配置指南(簡(jiǎn)單易操作)

    Node.js同時(shí)安裝多個(gè)版本及相關(guān)配置指南(簡(jiǎn)單易操作)

    在實(shí)際開(kāi)發(fā)過(guò)程中我們可能需要安裝多個(gè)版本的 nodejs,下面這篇文章主要給大家介紹了關(guān)于Node.js同時(shí)安裝多個(gè)版本及相關(guān)配置的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 關(guān)于Node.js的events.EventEmitter用法介紹

    關(guān)于Node.js的events.EventEmitter用法介紹

    本篇文章主要介紹了關(guān)于Node.js的events.EventEmitter用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • Node.js+Express配置入門教程

    Node.js+Express配置入門教程

    Node.js是一個(gè)Javascript運(yùn)行環(huán)境(runtime)。本文給大家介紹Node.js+Express配置入門教程,值得推薦給大家,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • Centos7 中安裝 Node.js v4.4.4

    Centos7 中安裝 Node.js v4.4.4

    我一直對(duì)學(xué)習(xí)Node.js比較感興趣。這是一個(gè)Java平臺(tái)的服務(wù)器端編程 ,它允許開(kāi)發(fā)人員在服務(wù)器編寫(xiě)Java代碼,并且有許多CentOS的用戶正努力學(xué)習(xí)這個(gè)語(yǔ)言的開(kāi)發(fā)環(huán)境。這正是我想做這個(gè)教程的目的。
    2016-11-11
  • Node.js服務(wù)端實(shí)戰(zhàn)之服務(wù)啟動(dòng)過(guò)程詳解

    Node.js服務(wù)端實(shí)戰(zhàn)之服務(wù)啟動(dòng)過(guò)程詳解

    這篇文章主要為大家介紹了Node.js服務(wù)端實(shí)戰(zhàn)之服務(wù)啟動(dòng)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • node.js中的socket.io的廣播消息

    node.js中的socket.io的廣播消息

    這篇文章主要介紹了node.js中的socket.io的廣播消息,需要的朋友可以參考下
    2014-12-12

最新評(píng)論

讷河市| 华池县| 交城县| 黔西| 邯郸市| 松阳县| 淅川县| 铜陵市| 金平| 白玉县| 伊川县| 沁水县| 应用必备| 巢湖市| 宝清县| 四子王旗| 留坝县| 马龙县| 寻甸| 启东市| 钦州市| 华坪县| 宁河县| 牟定县| 霍城县| 将乐县| 赤壁市| 威海市| 梧州市| 丘北县| 白河县| 三都| 长阳| 安达市| 山东| 新竹市| 普陀区| 专栏| 三门峡市| 盐山县| 利川市|