mirror of
				https://github.com/goldbergyoni/nodebestpractices.git
				synced 2025-10-31 09:38:39 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			26 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Скрывайте детали ошибок от клиентов
 | ||
| 
 | ||
| ### Объяснение в один абзац
 | ||
| 
 | ||
| Следует избегать предоставления подробных сведений об ошибках в сообщениях клиенту в производственном процессе, поскольку существует риск раскрытия таких важных сведений приложения, как пути к файлам сервера, используемые сторонние модули и другие внутренние рабочие процессы приложения, которые могут быть использованы злоумышленником.
 | ||
| Express поставляется со встроенным обработчиком ошибок, который заботится о любых ошибках, которые могут возникнуть в приложении. Эта промежуточная функция обработки ошибок по умолчанию добавляется в конец стека функций промежуточного программного обеспечения.
 | ||
| Если вы передаете ошибку в `next()` и не обрабатываете ее в пользовательском обработчике ошибок, она будет обработана встроенным обработчиком ошибок Express; ошибка будет записана клиенту с трассировкой стека. Это поведение будет истинным, если для `NODE_ENV` установлено значение `development`, однако, если для `NODE_ENV` установлено значение `production`, трассировка стека не записывается, только код ответа HTTP.
 | ||
| 
 | ||
| ### Пример кода: экспресс-обработчик ошибок
 | ||
| 
 | ||
| ```javascript
 | ||
| // production error handler
 | ||
| // no stacktraces leaked to user
 | ||
| app.use((err, req, res, next) => {
 | ||
|     res.status(err.status || 500);
 | ||
|     res.render('error', {
 | ||
|         message: err.message,
 | ||
|         error: {}
 | ||
|     });
 | ||
| });
 | ||
| ```
 | ||
| 
 | ||
| ### Дополнительные ресурсы
 | ||
| 
 | ||
| 🔗 [Express.js error handling documentation](https://expressjs.com/en/guide/error-handling.html)
 | 
