Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all articles
Browse latest Browse all 517766

Абстрагирование бизнес логики от маршрутизации - Node.js

$
0
0
Недавно меня посетила мысль, что в программировании принято делать различные модули приложения максимально независимыми другу от друга (например, паттерн MVP, отделяющий модель приложения от view-шки). Однако, очень часто в примерах по использованию различных framework-ов для Node (Express, Socket.io и т.д.) вижу приблизительно следующую картину:
Кликните здесь для просмотра всего текста

Router:
Код:

let someController = require('someController');

module.exports = (app) => {
    app.route('/api/some/route').post(someController.someMethod);
};

Controller:
Код:

exports.someMethod = (req, res) => {
    let data = req.body;
    // ...
    res.send(result);
};


Разве такой подход не привязывает бизнес логику приложения к используемому фреймворку и, соответственно, усложняет рефакторинг, в случае перехода на другой стэк технологий, или же повторное использование модели для другого проекта?

И что скажете насчет подхода, показаного снизу?
Кликните здесь для просмотра всего текста

Router:
Код:

module.exports = (app) => {
    app.route('/api/some/route').post((req, res) => {
        someController.someMethod(req.body, (result) => {
            res.send(result);
        });
    });
};

Controller:
Код:

exports.someMethod = (data, callback) => {
    // ...
    callback(result);
};


Что можете посоветовать из литературы по проектированию архитектуры веб-серверов?

Viewing all articles
Browse latest Browse all 517766

Trending Articles