Parcourir la source

add morgan for event-api-service

guoziyun il y a 9 mois
Parent
commit
edf49ce7f9
3 fichiers modifiés avec 90 ajouts et 0 suppressions
  1. 82 0
      oms/package-lock.json
  2. 2 0
      oms/package.json
  3. 6 0
      oms/services/event-api-service.ts

+ 82 - 0
oms/package-lock.json

@@ -22,6 +22,7 @@
         "moment": "^2.30.1",
         "mongodb": "^5.0.0",
         "mongoose": "^7.0.0",
+        "morgan": "^1.10.1",
         "node-cron": "^4.2.1",
         "pm2": "^6.0.8",
         "redis": "^5.8.1",
@@ -35,6 +36,7 @@
         "@types/moment": "^2.11.29",
         "@types/mongodb": "^4.0.6",
         "@types/mongoose": "^5.11.96",
+        "@types/morgan": "^1.9.10",
         "@types/node": "^24.3.0",
         "@types/node-cron": "^3.0.11",
         "@types/redis": "^4.0.10",
@@ -907,6 +909,16 @@
         "mongoose": "*"
       }
     },
+    "node_modules/@types/morgan": {
+      "version": "1.9.10",
+      "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.10.tgz",
+      "integrity": "sha512-sS4A1zheMvsADRVfT0lYbJ4S9lmsey8Zo2F7cnbYjWHP67Q0AwMYuuzLlkIM2N8gAbb9cubhIVFwcIN2XyYCkA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
     "node_modules/@types/ms": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
@@ -1291,6 +1303,24 @@
       ],
       "license": "MIT"
     },
+    "node_modules/basic-auth": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+      "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+      "license": "MIT",
+      "dependencies": {
+        "safe-buffer": "5.1.2"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/basic-auth/node_modules/safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+      "license": "MIT"
+    },
     "node_modules/basic-ftp": {
       "version": "5.0.5",
       "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
@@ -3148,6 +3178,49 @@
         "url": "https://opencollective.com/mongoose"
       }
     },
+    "node_modules/morgan": {
+      "version": "1.10.1",
+      "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.1.tgz",
+      "integrity": "sha512-223dMRJtI/l25dJKWpgij2cMtywuG/WiUKXdvwfbhGKBhy1puASqXwFzmWZ7+K73vUPoR7SS2Qz2cI/g9MKw0A==",
+      "license": "MIT",
+      "dependencies": {
+        "basic-auth": "~2.0.1",
+        "debug": "2.6.9",
+        "depd": "~2.0.0",
+        "on-finished": "~2.3.0",
+        "on-headers": "~1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
+    "node_modules/morgan/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "license": "MIT",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/morgan/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "license": "MIT"
+    },
+    "node_modules/morgan/node_modules/on-finished": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+      "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+      "license": "MIT",
+      "dependencies": {
+        "ee-first": "1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
     "node_modules/mpath": {
       "version": "0.9.0",
       "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
@@ -3340,6 +3413,15 @@
         "node": ">= 0.8"
       }
     },
+    "node_modules/on-headers": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
+      "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
     "node_modules/once": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",

+ 2 - 0
oms/package.json

@@ -31,6 +31,7 @@
     "moment": "^2.30.1",
     "mongodb": "^5.0.0",
     "mongoose": "^7.0.0",
+    "morgan": "^1.10.1",
     "node-cron": "^4.2.1",
     "pm2": "^6.0.8",
     "redis": "^5.8.1",
@@ -44,6 +45,7 @@
     "@types/moment": "^2.11.29",
     "@types/mongodb": "^4.0.6",
     "@types/mongoose": "^5.11.96",
+    "@types/morgan": "^1.9.10",
     "@types/node": "^24.3.0",
     "@types/node-cron": "^3.0.11",
     "@types/redis": "^4.0.10",

+ 6 - 0
oms/services/event-api-service.ts

@@ -6,6 +6,7 @@ dotenv.config();
 
 import express, { Request, Response } from "express";
 import amqp from "amqplib"; // Import amqplib for RabbitMQ interaction
+import morgan from "morgan"; // 👈 新增:导入 morgan 库
 
 import mongoose from "mongoose"; // 👈 导入 mongoose 用于生成 ObjectId
 import { v4 as uuidv4 } from "uuid"; // 👈 新增:导入 uuidv4 用于生成事件ID
@@ -69,6 +70,11 @@ async function connectRabbitMQ() {
 // --- Middleware ---
 // 服务部署在反向代理(如 Nginx)后面,需设置此项以正确获取客户端 IP
 app.set("trust proxy", true);
+
+// 👈 新增:使用 morgan 中间件来记录所有请求
+// :remote-addr 和 :req[host] 会通过 app.set("trust proxy", true) 正常工作
+app.use(morgan('[:date[clf]] :remote-addr :req[host] :status :response-time ms :res[content-length] ":method :url HTTP/:http-version" ":referrer" ":user-agent"'));
+
 app.use(express.json()); // To parse JSON request bodies
 
 // --- API Endpoint: /napi/event/v2 ---