Files

32 lines
737 B
JavaScript

const { isMaintenanceModeActive, MaintenanceMode } = require('../utils/maintenanceMode');
/**
* 维护模式中间件
* 维护期间拦截所有非白名单请求,返回 503 状态码
*/
function maintenanceMiddleware(req, res, next) {
if (!isMaintenanceModeActive()) {
return next();
}
const isAllowed = MaintenanceMode.allowedRoutes.some((route) =>
req.path.startsWith(route)
);
if (isAllowed) {
return next();
}
return res.status(503).json({
success: false,
message: '系统正在维护中,请稍后再试',
maintenance: {
active: true,
reason: MaintenanceMode.reason,
startTime: MaintenanceMode.startTime,
},
});
}
module.exports = { maintenanceMiddleware };