[[: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 }));
//...