ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejs を使用してアクセス ログ ミドルウェアを作成する方法についての簡単な説明

Nodejs を使用してアクセス ログ ミドルウェアを作成する方法についての簡単な説明

青灯夜游
青灯夜游転載
2021-09-18 10:38:081673ブラウズ

この記事では、node.js を使用してインターフェースのアクセスログ機能を実装する方法を説明します。

Nodejs を使用してアクセス ログ ミドルウェアを作成する方法についての簡単な説明

#ミドルウェア アクセス ログ

ターゲット##ミドルウェア技術を使用して、アクセス ログを記録するためのミドルウェアを作成します

ミドルウェアミドルウェア、ミドルウェア

特別な URL アドレスです処理 関数 app.use (ミドルウェア関数) のパラメーターとして使用されるか、ルーティング処理関数で使用されます。

ミドルウェアは Express の最大の特徴であり、最も重要な設計です。
    Express は最小限の機能を備えた Web 開発フレームワークであり、ルーティングとミドルウェアで完全に構成されており、基本的に Express アプリケーションはさまざまなミドルウェアを呼び出しています。
  • [推奨される学習: 「nodejs チュートリアル 」]Express アプリケーションは、多くのミドルウェアによって完成されます。

Nodejs を使用してアクセス ログ ミドルウェアを作成する方法についての簡単な説明

#ミドルウェアの基本的な使い方

// 具名函数格式:
const handler1 = (req, res, next) => {
  console.log(Date.now());
  next();
}
app.use(handler1);
// 匿名函数格式:
app.use((req, res, next) => {
  console.log(Date.now());
  next();
});
説明: ミドルウェアの機能その中の 3 つの基本パラメータ、req、res、

next

    req
  • は、次のミドルウェアに関連するリクエスト関連のオブジェクトです。 function req オブジェクトは応答関連オブジェクトであるオブジェクト

  • res
  • であり、次のミドルウェア関数の res オブジェクトと同じオブジェクトです

  • next
  • これは関数です。これを呼び出すと現在のミドルウェア関数を抜け出して後続のミドルウェアを実行します。next が呼び出されなかったり、res.end が実行されなかった場合は、リクエスト全体が現在のミドルウェアに留まります。

#アイデア

##ミドルウェア テクノロジを適用して各リクエストを記録する作成レコードを保存する

.json
    ファイル
  • データを読み取り、
  • .json ファイルに配置します
  • js 実装コード

const express = require("express");
const app = express();
const fs = require("fs");
// 获取ip的函数
function getClientIp(req) {
  return (
    req.headers["x-forwarded-for"] ||
    req.connection.remoteAddress ||
    req.socket.remoteAddress ||
    req.connection.socket.remoteAddress
  );
}
// 中间件
app.use((req, res, next) => {
  console.log("时间", new Date());
  console.log("访问地址", req.url);
  console.log("f访问ip", getClientIp(req));
  /**
   * 建立一个.json的文件 []
   * 获取文件内容'[]'==>[]
   * let obj = {time:xxx,url:xxx,ip:xxx}
   * [].push(obj)
   * [].push(obj)覆盖写入.json的文件
   */
  fs.readFile("hhhh.json", "utf8", (err, data) => {
    if (err) {
      console.log("文件读取错误", err);
      return;
    }
    let arr = JSON.parse(data);
    //console.log(arr);
    let obj = {};
    obj.time = new Date();
    obj.url = req.url;
    obj.ip = getClientIp(req);
    arr.push(obj);
    console.log(arr);
    let newArr = JSON.stringify(arr);
    fs.writeFile("hhhh.json", newArr, (err) => {
      if (err) {
        console.log("写入错误", err);
      }
    });
  });
  next();
});
// 监听接口
app.listen(8080, () => {
  console.log("成功,接口是8080");
});
コンソールのスクリーンショット

##オリジナルアドレス: https://juejin.cn/post/7008510822578126862

Nodejs を使用してアクセス ログ ミドルウェアを作成する方法についての簡単な説明

著者: 卑怯ではありません


プログラミング関連の知識については、こちらをご覧ください:

プログラミング ビデオ

! !

以上がNodejs を使用してアクセス ログ ミドルウェアを作成する方法についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。