📦 chore: Bump Express.js to v5 (#10671)

* chore: update express to version 5.1.0 in package.json

* chore: update express-rate-limit to version 8.2.1 in package.json and package-lock.json

* fix: Enhance server startup error handling in experimental and index files

* Added error handling for server startup in both experimental.js and index.js to log errors and exit the process if the server fails to start.
* Updated comments in openidStrategy.js to clarify the purpose of the CustomOpenIDStrategy class and its relation to Express version changes.

* chore: Implement rate limiting for all POST routes excluding /speech, required for express v5

* Added middleware to apply IP and user rate limiters to all POST requests, ensuring that the /speech route remains unaffected.
* Enhanced code clarity with comments explaining the new rate limiting logic.

* chore: Enable writable req.query for mongoSanitize compatibility in Express 5

* chore: Ensure req.body exists in multiple middleware and route files for Express 5 compatibility
This commit is contained in:
Danny Avila 2025-11-25 17:01:19 -05:00
parent 63926cb874
commit 242832287a
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
11 changed files with 432 additions and 422 deletions

View file

@ -29,7 +29,20 @@ const initialize = async () => {
router.use('/speech', speech);
const { fileUploadIpLimiter, fileUploadUserLimiter } = createFileLimiters();
router.post('*', fileUploadIpLimiter, fileUploadUserLimiter);
/** Apply rate limiters to all POST routes (excluding /speech which is handled above) */
router.use((req, res, next) => {
if (req.method === 'POST' && !req.path.startsWith('/speech')) {
return fileUploadIpLimiter(req, res, (err) => {
if (err) {
return next(err);
}
return fileUploadUserLimiter(req, res, next);
});
}
next();
});
router.post('/', upload.single('file'));
router.post('/images', upload.single('file'));
router.post('/images/avatar', upload.single('file'));