この記事では、node.js を使用してインターフェースのアクセスログ機能を実装する方法を説明します。
ターゲット##ミドルウェア技術を使用して、アクセス ログを記録するためのミドルウェアを作成します
ミドルウェアミドルウェア、ミドルウェア
は特別な URL アドレスです処理 関数 。 app.use (ミドルウェア関数) のパラメーターとして使用されるか、ルーティング処理関数で使用されます。
nodejs チュートリアル
」]Express アプリケーションは、多くのミドルウェアによって完成されます。 // 具名函数格式:
const handler1 = (req, res, next) => {
console.log(Date.now());
next();
}
app.use(handler1);
// 匿名函数格式:
app.use((req, res, next) => {
console.log(Date.now());
next();
});
req
#アイデア- は、次のミドルウェアに関連するリクエスト関連のオブジェクトです。 function req オブジェクトは応答関連オブジェクトであるオブジェクト
res- であり、次のミドルウェア関数の res オブジェクトと同じオブジェクトです
next- これは関数です。これを呼び出すと現在のミドルウェア関数を抜け出して後続のミドルウェアを実行します。next が呼び出されなかったり、res.end が実行されなかった場合は、リクエスト全体が現在のミドルウェアに留まります。
##ミドルウェア テクノロジを適用して各リクエストを記録する作成レコードを保存する
.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 を使用してアクセス ログ ミドルウェアを作成する方法についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。