fix middleware again
This commit is contained in:
@@ -11,10 +11,7 @@ export class ApiError extends Error {
|
||||
}
|
||||
|
||||
const router = Router();
|
||||
const asyncHandler = fn => (req, res, next) => Promise.resolve(fn(req, res, next)).catch(err => {
|
||||
res.error = err;
|
||||
next();
|
||||
});
|
||||
const asyncHandler = fn => (req, res, next) => Promise.resolve(fn(req, res, next)).catch(next);
|
||||
|
||||
const userSchema = Joi.object({
|
||||
username: Joi.string().min(3).max(32).required()
|
||||
|
||||
@@ -47,19 +47,14 @@ app.use(express.static(path.join(__dirname, "public"), {
|
||||
app.use("/api/docs", swaggerUi.serve, swaggerUi.setup(specs));
|
||||
app.use("/api", apiRouter);
|
||||
|
||||
app.use((_req, res, next) => {
|
||||
if (res.error == null) {
|
||||
return res.status(404).send("Not Found");
|
||||
} else {
|
||||
const err = res.error;
|
||||
app.use((err, req, res, next) => {
|
||||
if (err instanceof ApiError) {
|
||||
return res.status(err.status).json({ status: "error", error: err.message });
|
||||
}
|
||||
|
||||
console.error(err);
|
||||
res.status(500).json({ status: "error", error: "Internal server error" });
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
const server = https.createServer({
|
||||
key: fs.readFileSync('server.key'),
|
||||
|
||||
Reference in New Issue
Block a user