[[:oktatas:web:back-end_framework:express|< Express]] ====== Express - Naplózás ES ====== * **Szerző:** Sallai András * Copyright (c) 2025, Sallai András * Szerkesztve: 2025 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Morgan ===== Webhely: * https://www.npmjs.com/package/morgan (2025) Telepítsük a morgan csomagot: npm install morgan ==== Példa projekt ==== import Router from 'express' const router = Router() router.get('/msg', (req, res) => { res.json({ message: 'Működik' }) }) export default router import express from 'express' import router from './api.js' import morgan from 'morgan' const app = express() app.use(morgan('dev')) app.use(router) const PORT = process.env.PORT || 8000 app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`) }) ==== Paraméterek ==== Paraméterként megadható: * combined * dev * short * tiny Ha nem adunk meg paramétert figyelmeztetést kapunk, hogy így használni elavult, de az alapértelmezés ilyenkor a combined. ==== Indítás ==== Indítsuk el a szervert, például: node app Teszteljük egy HTTP klienssel. Legyen a res ((Telepítés: npm i -g resen)) parancs: res localhost:8000/msg Abban a terminálban ahol elindítottuk az API szervert, most némi információt látunk a kérésről. Például: GET /msg 200 1.758 ms - 23 ===== Írás fájlba ===== A naplót fájlba is írhatjuk. Ehhez szükség lesz az fs függőségre. Ezt nem szükséges csomagként telepíteni, mert alapértelmezetten rendelkezésre áll. Az api.js nem változik: import Router from 'express' const router = Router() router.get('/msg', (req, res) => { res.json({ message: 'Működik' }) }) export default router Az index.js-ben: import express from 'express' import router from './api.js' import morgan from 'morgan' const app = express() import fs from 'fs' const logfile = 'access.log' var accessLogStream = fs.createWriteStream(logfile, { flags: 'a' }) app.use(morgan('dev', { stream: accessLogStream })) app.use(router) const PORT = process.env.PORT || 8000 app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`) }) ===== Log könyvtár ===== //... if (!fs.existsSync('./logs')) { fs.mkdirSync('./logs'); } const logfile = './logs/access.log'; var accessLogStream = fs.createWriteStream(logfile, { flags: 'a' }); app.use(morgan('combined', { stream: accessLogStream })); //...