add error handler
This commit is contained in:
@@ -17,18 +17,19 @@
|
|||||||
"esbuild": "^0.14.10",
|
"esbuild": "^0.14.10",
|
||||||
"esno": "^0.13.0",
|
"esno": "^0.13.0",
|
||||||
"express": "^4.17.2",
|
"express": "^4.17.2",
|
||||||
|
"express-promise-router": "^4.1.1",
|
||||||
"gray-matter": "^4.0.3",
|
"gray-matter": "^4.0.3",
|
||||||
"http-terminator": "^3.0.4",
|
"http-terminator": "^3.0.4",
|
||||||
|
"markdown-it": "^12.3.0",
|
||||||
|
"markdown-it-prism": "^2.2.1",
|
||||||
"pino": "^7.6.2",
|
"pino": "^7.6.2",
|
||||||
"pino-colada": "^2.2.2",
|
"pino-colada": "^2.2.2",
|
||||||
"pino-http": "^6.5.0",
|
"pino-http": "^6.5.0",
|
||||||
|
"postcss": "^8.4.5",
|
||||||
"reacord": "workspace:*",
|
"reacord": "workspace:*",
|
||||||
"react": "^18.0.0-rc.0",
|
"react": "^18.0.0-rc.0",
|
||||||
"react-dom": "^18.0.0-rc.0",
|
"react-dom": "^18.0.0-rc.0",
|
||||||
"postcss": "^8.4.5",
|
"tailwindcss": "^3.0.8"
|
||||||
"tailwindcss": "^3.0.8",
|
|
||||||
"markdown-it": "^12.3.0",
|
|
||||||
"markdown-it-prism": "^2.2.1"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/browser-sync": "^2.26.3",
|
"@types/browser-sync": "^2.26.3",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import compression from "compression"
|
import compression from "compression"
|
||||||
import type { Request } from "express"
|
import type { ErrorRequestHandler, Request } from "express"
|
||||||
import express from "express"
|
import express from "express"
|
||||||
|
import Router from "express-promise-router"
|
||||||
import httpTerminator from "http-terminator"
|
import httpTerminator from "http-terminator"
|
||||||
import pino from "pino"
|
import pino from "pino"
|
||||||
import pinoHttp from "pino-http"
|
import pinoHttp from "pino-http"
|
||||||
@@ -16,7 +17,12 @@ import { Landing } from "./pages/landing"
|
|||||||
const logger = pino()
|
const logger = pino()
|
||||||
const port = process.env.PORT || 3000
|
const port = process.env.PORT || 3000
|
||||||
|
|
||||||
const app = express()
|
const errorHandler: ErrorRequestHandler = (error, request, response, next) => {
|
||||||
|
response.status(500).send(error.message)
|
||||||
|
logger.error(error)
|
||||||
|
}
|
||||||
|
|
||||||
|
const router = Router()
|
||||||
.use(pinoHttp({ logger }))
|
.use(pinoHttp({ logger }))
|
||||||
.use(compression())
|
.use(compression())
|
||||||
.get("/tailwind.css", serveTailwindCss())
|
.get("/tailwind.css", serveTailwindCss())
|
||||||
@@ -51,7 +57,11 @@ const app = express()
|
|||||||
sendJsx(res, <Landing />)
|
sendJsx(res, <Landing />)
|
||||||
})
|
})
|
||||||
|
|
||||||
const server = app.listen(port, () => {
|
.use(errorHandler)
|
||||||
|
|
||||||
|
const server = express()
|
||||||
|
.use(router)
|
||||||
|
.listen(port, () => {
|
||||||
logger.info(`Server is running on https://localhost:${port}`)
|
logger.info(`Server is running on https://localhost:${port}`)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
27
pnpm-lock.yaml
generated
27
pnpm-lock.yaml
generated
@@ -58,6 +58,7 @@ importers:
|
|||||||
esno: ^0.13.0
|
esno: ^0.13.0
|
||||||
execa: ^6.0.0
|
execa: ^6.0.0
|
||||||
express: ^4.17.2
|
express: ^4.17.2
|
||||||
|
express-promise-router: ^4.1.1
|
||||||
fast-glob: ^3.2.7
|
fast-glob: ^3.2.7
|
||||||
gray-matter: ^4.0.3
|
gray-matter: ^4.0.3
|
||||||
http-terminator: ^3.0.4
|
http-terminator: ^3.0.4
|
||||||
@@ -82,6 +83,7 @@ importers:
|
|||||||
esbuild: 0.14.10
|
esbuild: 0.14.10
|
||||||
esno: 0.13.0_typescript@4.5.4
|
esno: 0.13.0_typescript@4.5.4
|
||||||
express: 4.17.2
|
express: 4.17.2
|
||||||
|
express-promise-router: 4.1.1_1b803edea6f06711ee906a90f400b6a4
|
||||||
gray-matter: 4.0.3
|
gray-matter: 4.0.3
|
||||||
http-terminator: 3.0.4
|
http-terminator: 3.0.4
|
||||||
markdown-it: 12.3.0
|
markdown-it: 12.3.0
|
||||||
@@ -3560,6 +3562,23 @@ packages:
|
|||||||
jest-regex-util: 27.4.0
|
jest-regex-util: 27.4.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/express-promise-router/4.1.1_1b803edea6f06711ee906a90f400b6a4:
|
||||||
|
resolution: {integrity: sha512-Lkvcy/ZGrBhzkl3y7uYBHLMtLI4D6XQ2kiFg9dq7fbktBch5gjqJ0+KovX0cvCAvTJw92raWunRLM/OM+5l4fA==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
peerDependencies:
|
||||||
|
'@types/express': ^4.0.0
|
||||||
|
express: ^4.0.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@types/express':
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
'@types/express': 4.17.13
|
||||||
|
express: 4.17.2
|
||||||
|
is-promise: 4.0.0
|
||||||
|
lodash.flattendeep: 4.4.0
|
||||||
|
methods: 1.1.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/express/4.17.2:
|
/express/4.17.2:
|
||||||
resolution: {integrity: sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==}
|
resolution: {integrity: sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==}
|
||||||
engines: {node: '>= 0.10.0'}
|
engines: {node: '>= 0.10.0'}
|
||||||
@@ -4589,6 +4608,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
|
resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/is-promise/4.0.0:
|
||||||
|
resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/is-regex/1.1.4:
|
/is-regex/1.1.4:
|
||||||
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
|
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
@@ -5527,6 +5550,10 @@ packages:
|
|||||||
resolution: {integrity: sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU=}
|
resolution: {integrity: sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU=}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/lodash.flattendeep/4.4.0:
|
||||||
|
resolution: {integrity: sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/lodash.isfinite/3.3.2:
|
/lodash.isfinite/3.3.2:
|
||||||
resolution: {integrity: sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=}
|
resolution: {integrity: sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=}
|
||||||
dev: true
|
dev: true
|
||||||
|
|||||||
Reference in New Issue
Block a user