Pull to refresh
3
6
Send message

На ds-express-errors.dev это все подробно описано, даже есть примери как выглядит код до внедрения библиотеки и после (на примере mongoose), пока только 1 пример, но планирую написать много разных.

Как раз на подобные случаи в библиотеке есть setConfig.

customMappers для личных ошибок, библиотека их отработает.

formatError если нужно свой формат ответа.

devEnvironments если надо указать свои среды для dev.

customLogger если хочется Winston/Pino а не console

Я буду делать отдельную статью по абсолютно всему функционалу библиотеки, так как тут не все. Тут я просто самый главные фичи упомянул и посмотреть хотел, что люди думают об этом.

const { setConfig, errorHandler } = require('ds-express-errors');
const logger = require('./utils/logger'); // Your Winston/Pino logger

// Optional: Customize response format and Logger
setConfig({
    customLogger: logger, 
    
    customMappers: [
        (err) => {
            if (err.name === 'newError') {
                return Errors.BadRequest()
            }
        }
    ],
    devEnvironments: ['development', 'dev'],
    formatError: (err, {req, isDev}) => {
        return {
            success: false,
            error: {
                code: err.statusCode,
                message: err.message,
                ...(isDev ? { debug_stack: err.stack } : {})
            }
        };
    }
});

const app = express();
// ... your routes ...
app.use(errorHandler);

Формально да, Express сам по себе никакую архитектуру не навязывает, и «контроллеров» как отдельного концепта в нем нет

Я в статье использую этот термин просто в привычном смысле, как слой, где живут обработчики HTTP-запросов (route handlers). В большинстве Node.js проектов их все равно так называют, вот и прижилось да и я по привычке.

Information

Rating
953-rd
Registered
Activity