support builtInMiddlewares

This commit is contained in:
srgooglo 2022-05-13 11:53:37 +02:00
parent 203ed30c92
commit 78ceb643c4

View File

@ -7,6 +7,8 @@ const { randomWord } = require("@corenode/utils")
const { serverManifest, outputServerError } = require("./lib") const { serverManifest, outputServerError } = require("./lib")
const builtInMiddlewares = []
const HTTPEngines = { const HTTPEngines = {
"hyper-express": () => { "hyper-express": () => {
console.warn("Hyper-Express is not fully supported yet") console.warn("Hyper-Express is not fully supported yet")
@ -21,6 +23,22 @@ const HTTPEngines = {
global.DEFAULT_MIDDLEWARES.push(require("@nanoexpress/middleware-body-parser/cjs")()) global.DEFAULT_MIDDLEWARES.push(require("@nanoexpress/middleware-body-parser/cjs")())
// patch request model with a middleware
builtInMiddlewares.push(async (req, res) => {
// make sure req has an body and query
if (typeof req.body === "undefined") {
req.body = {}
}
if (typeof req.query === "undefined") {
req.query = {}
}
// // if server has enabled urlencoded parser, parse the body
// if (this.params.urlencoded) {
// req.body = await req.urlencoded()
// }
})
return require("nanoexpress")() return require("nanoexpress")()
}, },
"express": () => { "express": () => {
@ -88,22 +106,6 @@ class Server {
serverManifest.write({ lastStart: Date.now() }) serverManifest.write({ lastStart: Date.now() })
// patch request model with a middleware
this.httpInterface.use(async (req, res) => {
// make sure req has an body and query
if (typeof req.body === "undefined") {
req.body = {}
}
if (typeof req.query === "undefined") {
req.query = {}
}
// // if server has enabled urlencoded parser, parse the body
// if (this.params.urlencoded) {
// req.body = await req.urlencoded()
// }
})
return this return this
} }
@ -146,7 +148,7 @@ class Server {
} }
initializeMiddlewares = () => { initializeMiddlewares = () => {
const useMiddlewares = [...global.DEFAULT_MIDDLEWARES, ...(this.params.middlewares ?? [])] const useMiddlewares = [...builtInMiddlewares, ...global.DEFAULT_MIDDLEWARES, ...(this.params.middlewares ?? [])]
useMiddlewares.forEach((middleware) => { useMiddlewares.forEach((middleware) => {
if (typeof middleware === "function") { if (typeof middleware === "function") {