1
0
mirror of https://github.com/tcgdex/cards-database.git synced 2025-06-06 21:39:55 +00:00

fix: 404 error for options requests

Signed-off-by: Avior <github@avior.me>
This commit is contained in:
Florian Bouillon 2024-01-03 21:06:52 +01:00
parent 12ed23b5a2
commit 28fcb66fc9

View File

@ -8,21 +8,11 @@ const VERSION = 2
// Init Express server // Init Express server
const server = express() const server = express()
// Set CORS global headers
server.use((_, res, next) => {
res
.setHeader('Access-Control-Allow-Origin', '*')
.setHeader('Access-Control-Allow-Methods', 'GET,POST,OPTIONS')
.setHeader('Access-Control-Allow-Headers', 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range')
.setHeader('Access-Control-Expose-Headers', 'Content-Length,Content-Range')
next()
})
// Route logging / Error logging for debugging // Route logging / Error logging for debugging
server.use((req, res, next) => { server.use((req, res, next) => {
const now = new Date() const now = new Date()
// Date of request User-Agent 32 first chars request Method // Date of request User-Agent 32 first chars request Method
let prefix = `\x1b[2m${now.toISOString()}\x1b[22m ${req.headers['user-agent']?.slice(0, 32).padEnd(32)} ${req.method.padEnd(7)}` let prefix = `\x1b[2m${now.toISOString()}\x1b[22m ${req.headers['user-agent']?.slice(0, 32).padEnd(32)} ${req.method.toUpperCase().padEnd(7)}`
const url = new URL(req.url, `http://${req.headers.host}`) const url = new URL(req.url, `http://${req.headers.host}`)
const fullURL = url.toString() const fullURL = url.toString()
@ -51,11 +41,19 @@ server.use((req, res, next) => {
next() next()
}) })
/** // Set CORS global headers
* Handle options requests server.use((req, res, next) => {
*/ res
server.options('/*', (_, res) => { .setHeader('Access-Control-Allow-Origin', '*')
res.status(200).send() .setHeader('Access-Control-Allow-Methods', 'GET,POST,OPTIONS')
.setHeader('Access-Control-Allow-Headers', 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range')
.setHeader('Access-Control-Expose-Headers', 'Content-Length,Content-Range')
if (req.method.toUpperCase() === 'OPTIONS') {
res.status(200).send('ok')
return
}
next()
}) })
server.get('/', (_, res) => { server.get('/', (_, res) => {