Perbincangan ringkas tentang cara menggunakan Nodejs untuk mencipta perisian tengah pengelogan akses

青灯夜游
Lepaskan: 2021-09-18 10:38:08
ke hadapan
1791 orang telah melayarinya

Artikel ini akan berkongsi dengan anda cara menggunakan node.js untuk melaksanakan fungsi pengelogan akses antara muka saya harap ia akan membantu semua orang.

Perbincangan ringkas tentang cara menggunakan Nodejs untuk mencipta perisian tengah pengelogan akses

Log Akses Perisian Tengah

Sasaran

Gunakan teknologi middleware untuk menulis middleware untuk merekod log akses

Middleware

middleware, middleware ialah Alamat url khas pemprosesan fungsi , yang digunakan sebagai parameter app.use(中间件函数) atau dalam fungsi pemprosesan penghalaan.

  • Perisian tengah ialah ciri terbesar bagi reka bentuk ekspres dan paling penting. Express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。[Pembelajaran yang disyorkan: "tutorial nodejs"]
  • Aplikasi ekspres dilengkapkan oleh banyak perisian tengah.

Perbincangan ringkas tentang cara menggunakan Nodejs untuk mencipta perisian tengah pengelogan akses

Penggunaan asas middleware

// 具名函数格式:
const handler1 = (req, res, next) => {
  console.log(Date.now());
  next();
}
app.use(handler1);
Salin selepas log masuk
// 匿名函数格式:
app.use((req, res, next) => {
  console.log(Date.now());
  next();
});
Salin selepas log masuk

Nota : Terdapat tiga parameter asas dalam fungsi middleware, req, res, seterusnya

  • req ialah objek berkaitan permintaan, iaitu berkaitan dengan yang berikut Objek req dalam fungsi middleware ialah objek

  • res yang merupakan objek berkaitan tindak balas Ia adalah objek yang sama dengan objek res dalam fungsi middleware seterusnya , res tidak akan dilaksanakan tamat, keseluruhan permintaan akan tersekat dalam perisian tengah semasa.

  • Idea

Gunakan teknologi middleware untuk merekod setiap permintaan Cipta fail untuk menyimpan rekod

    Baca data dan masukkan ke dalam fail
  • .json
  • Kod pelaksanaan js.json

Tangkapan skrin konsol

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");
});
Salin selepas log masuk

Teks asal Alamat: https:// juejin.cn/post/7008510822578126862

Perbincangan ringkas tentang cara menggunakan Nodejs untuk mencipta perisian tengah pengelogan aksesPengarang: Buco

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:
Video Pengaturcaraan

! !

Atas ialah kandungan terperinci Perbincangan ringkas tentang cara menggunakan Nodejs untuk mencipta perisian tengah pengelogan akses. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan