Parcourir la source

Added request logging middleware

pull/42/head
dusan-lazarevic il y a 3 ans
Parent
révision
d97ceb2ba1
5 fichiers modifiés avec 32 ajouts et 4 suppressions
  1. 1
    0
      .gitignore
  2. 0
    3
      src/endpoints/user.js
  3. 1
    1
      src/middleware/errorHandling.js
  4. 25
    0
      src/middleware/requestLogging.js
  5. 5
    0
      src/server.js

+ 1
- 0
.gitignore Voir le fichier

node_modules/ node_modules/
src/loggerFiles/all.log src/loggerFiles/all.log
src/loggerFiles/error.log src/loggerFiles/error.log


+ 0
- 3
src/endpoints/user.js Voir le fichier

const bcrypt = require("bcryptjs/dist/bcrypt") const bcrypt = require("bcryptjs/dist/bcrypt")
const { Router } = require("express") const { Router } = require("express")
const User = require("../models/user") const User = require("../models/user")
const logger = require("../logging/logger")


const getUsers = async (req, res, next) => { const getUsers = async (req, res, next) => {
try { try {
logger.silly('hello from logger')
const allUsers = await User.find({}) const allUsers = await User.find({})
return res.status(200).send(allUsers) return res.status(200).send(allUsers)
} catch (e) { } catch (e) {


const user = await User.findById(id) const user = await User.findById(id)
if (!user) { if (!user) {
logger.error('We couldnt find user with the id of '+ id)
return res.status(404).send("User with the id of: " + id + " doesnt exist") return res.status(404).send("User with the id of: " + id + " doesnt exist")
} }



+ 1
- 1
src/middleware/errorHandling.js Voir le fichier

const errorLogger = (err, req, res, next) => { const errorLogger = (err, req, res, next) => {
console.error('GRESKA KOLEGAA' + err)
console.error(err)
next(err) next(err)
} }

+ 25
- 0
src/middleware/requestLogging.js Voir le fichier

const logger = require("../logging/logger")
const requestLogging = async (req, res, next) => {
res.header("Content-Type", 'application/json');
const reqData = JSON.stringify({
headers: req.headers,
method: req.method,
url: req.url,
httpVersion: req.httpVersion,
body: req.body,
cookies: req.cookies,
path: req.path,
protocol: req.protocol,
query: req.query,
hostname: req.hostname,
ip: req.ip,
originalUrl: req.originalUrl,
params: req.params,
})
logger.silly((JSON.stringify(reqData)))
next()
}
module.exports = requestLogging

+ 5
- 0
src/server.js Voir le fichier

const swaggerJsDoc = require("swagger-jsdoc") const swaggerJsDoc = require("swagger-jsdoc")
const swaggerUi = require("swagger-ui-express") const swaggerUi = require("swagger-ui-express")
const { errorLogger, errorResponder } = require('./middleware/errorHandling.js') const { errorLogger, errorResponder } = require('./middleware/errorHandling.js')
const requestLogging = require('./middleware/requestLogging.js')
const cors = require('cors') //Cross-origin resource sharing const cors = require('cors') //Cross-origin resource sharing
const helmet = require('helmet') //Basic protection against attacks like XSS const helmet = require('helmet') //Basic protection against attacks like XSS
const config = require('config') //Default configuration file const config = require('config') //Default configuration file
const { json } = require('express')


const swaggerOptions = { const swaggerOptions = {
swaggerDefinition: { swaggerDefinition: {
const swaggerDocs = swaggerJsDoc(swaggerOptions) const swaggerDocs = swaggerJsDoc(swaggerOptions)
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs)) app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs))



app.use(express.json()) app.use(express.json())
app.use(requestLogging)
app.use(cors()) app.use(cors())
app.use(helmet()) app.use(helmet())

app.use(userRouter) app.use(userRouter)
app.use(tokenRouter) app.use(tokenRouter)



Chargement…
Annuler
Enregistrer