exec controllers middlewares

This commit is contained in:
srgooglo 2021-07-08 11:30:53 +02:00
parent c9cb0c15bd
commit a1f38dde25

View File

@ -38,16 +38,12 @@ class Server {
if (localEndpoints && Array.isArray(localEndpoints)) { if (localEndpoints && Array.isArray(localEndpoints)) {
this.params.endpoints = [...this.params.endpoints ?? [], ...localEndpoints] this.params.endpoints = [...this.params.endpoints ?? [], ...localEndpoints]
} }
if (typeof middlewares !== "undefined" && Array.isArray(middlewares)) {
this.params.middlewares = [...this.params.middlewares ?? [], ...middlewares]
}
// set default middlewares
this.params.middlewares = [...this.params.middlewares ?? [], ...defaultMiddlewares]
//* set params jails //* set params jails
this.routes = [] this.routes = []
this.endpoints = {} this.endpoints = {}
this.middlewares = [] this.serverMiddlewares = [...this.params.serverMiddlewares ?? [], ...defaultMiddlewares]
this.middlewares = this.params.middlewares ?? {}
this.controllers = { ...this.params.controllers } this.controllers = { ...this.params.controllers }
this.headers = { ...defaultHeaders, ...this.params.headers } this.headers = { ...defaultHeaders, ...this.params.headers }
@ -105,9 +101,17 @@ class Server {
handleRequest = (req, res, next, endpoint) => { handleRequest = (req, res, next, endpoint) => {
const { route, method, controller } = endpoint const { route, method, controller } = endpoint
req.requestId = nanoid() req.requestId = nanoid()
req.endpoint = endpoint req.endpoint = endpoint
// exec middleware before controller
if (typeof controller.middleware !== "undefined") {
if (typeof this.middlewares[controller.middleware] === "function") {
this.middlewares[controller.middleware](req, res, next)
}
}
// exec controller // exec controller
if (typeof controller.exec === "function") { if (typeof controller.exec === "function") {
res.setHeader("request_id", req.requestId) res.setHeader("request_id", req.requestId)
@ -150,9 +154,10 @@ class Server {
//* setup server //* setup server
this.httpServer.use(express.json()) this.httpServer.use(express.json())
this.httpServer.use(express.urlencoded({ extended: true })) this.httpServer.use(express.urlencoded({ extended: true }))
// set middlewares // set middlewares
if (Array.isArray(this.params.middlewares)) { if (Array.isArray(this.serverMiddlewares)) {
this.params.middlewares.forEach((middleware) => { this.serverMiddlewares.forEach((middleware) => {
if (typeof middleware === "function") { if (typeof middleware === "function") {
this.httpServer.use(middleware) this.httpServer.use(middleware)
} }