Rumah  >  Artikel  >  hujung hadapan web  >  Perbincangan ringkas tentang cara menggunakan Nodejs untuk mencipta perisian tengah pengelogan akses

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

青灯夜游
青灯夜游ke hadapan
2021-09-18 10:38:081797semak imbas

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);
// 匿名函数格式:
app.use((req, res, next) => {
  console.log(Date.now());
  next();
});

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");
});

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!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:apa maksud jsArtikel seterusnya:apa maksud js