Merge pull request #6 from CountBleck/fixes

More error-handling fixes
This commit is contained in:
Green! 2022-08-30 22:53:04 -04:00 committed by GitHub
commit 05020a75ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 17 deletions

27
app.js
View file

@ -19,12 +19,19 @@ const serve = new nodeStatic.Server(join(
const server = http.createServer();
server.on('request', (request, response) => {
if (custombare.route(request, response)) return true;
if (bareServer.shouldRoute(request)) {
bareServer.routeRequest(request, response);
} else {
serve.serve(request, response);
try {
if (custombare.route(request, response)) return true;
if (bareServer.shouldRoute(request)) {
bareServer.routeRequest(request, response);
} else {
serve.serve(request, response);
}
} catch (e) {
response.writeHead(500, "Internal Server Error", {
"Content-Type": "text/plain"
})
response.end(e.stack)
}
});
server.on('upgrade', (req, socket, head) => {
@ -37,4 +44,12 @@ server.on('upgrade', (req, socket, head) => {
server.listen(PORT);
if (process.env.UNSAFE_CONTINUE)
process.on("uncaughtException", (err, origin) => {
console.error(`Critical error (${origin}):`)
console.error(err)
console.error("UNSAFELY CONTINUING EXECUTION")
console.error()
})
console.log(`Server running at http://localhost:${PORT}/.`);

View file

@ -51,15 +51,7 @@ async function fetchBare(url, res, req) {
},
}
try {
var request = await fetch(url.href, options);
} catch (e) {
var request = {
text() {
return 'Error: ' + e;
},
}
}
var request = await fetch(url.href, options);
try {
var contentType = request.headers.get('content-type') || 'application/javascript'
@ -90,8 +82,8 @@ async function fetchBare(url, res, req) {
request.body.pipe(res)
}
} catch (e) {
res.writeHead(500, 'Error', {
'content-type': 'application/javascript'
res.writeHead(500, 'Internal Server Error', {
'Content-Type': 'text/plain'
})
res.end(e.stack);
}