Я использую express.static
для обслуживания статических файлов, как показано ниже:
['/images','/packages','/scripts','/stylesheets'].forEach(p => {
app.use(p, express.static(siteSettings.publicFolder + p));
});
Это прекрасно работает, однако, когда запрашивается файл, который не существует, экспресс вызовет ошибку, как и ожидалосьно это касается моего пользовательского маршрута для всех ошибок:
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'production' ? {} : err;
// render the error page
res.status(err.status || 500);
res.render('views/error');
});
Это означает, что ошибки файла 404 (например, файлы изображений) возвращают полный документ ошибки клиенту (26 КБ), который выглядит какплохая идея.
Есть ли способ узнать, что express.static вызвал ошибку?
Я думал о том, чтобы сделать что-то вроде:
if (req.path.indexOf("/images") === 0){
res.send('Not found');
} else {
res.render('views/error');
}
НоЯ ищу что-то вроде:
if (req.errorFromStatic){
res.send('Not found');
} else {
res.render('views/error');
}
Есть ли способ сделать это?