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