Подтвердить что ты не робот

Express.js или angular для обработки маршрутов в приложении MEAN?

Я совершенно новичок во всем Nodejs/express/ angular, и я просто столкнулся с вопросом, который беспокоит меня.

Когда у вас есть MEAN-стек, кажется, что маршруты могут обрабатываться как Express.js, так и Angular.

Angular

Например, если я определяю маршрут в Angular, я могу сделать это следующим образом:

var app = angular.module("app", []).config(function($routeProvider) {
    $routeProvider.when('/login', {
        templateUrl: '/templates/login.html',
        controller: 'LoginController'
    });

    $routeProvider.when('/front', {
        templateUrl: '/templates/front.html',
        controller: 'FrontController'
    });


    $routeProvider.otherwise({redirectTo: '/front'})
});

Но с express.js я делаю:

app.get('/',function(req,res){
    res.sendfile('templates/angular.html');
});

Итак, мой вопрос:

Когда вы используете маршрутизацию angular, и когда вы используете экспресс-маршрутизацию?

(Я мог бы пропустить что-то очень очевидное здесь, но надеюсь, вы можете указать на это)

4b9b3361

Ответ 1

Эти два приложения служат для разных целей в одном приложении.

Приложение будет выполнять все CRUD (конечные точки, в которых вы создаете/читаете/обновляете/удаляете свои материалы, например: проекты, пользователи, счета и т.д.). Также он будет делать все аутентификационные материалы (например, /login и /register).

Все это требует маршрутов, потому что вам нужно что-то вроде /api/users, чтобы захватить всех ваших пользователей. Все эти маршруты, маршруты AKA CRUD и маршруты аутентификации идут в маршрутизатор express.js. Почему там? Потому что это маршруты бэкэнда.

С другой стороны, у вас есть приложение angular, которое содержит визуальную часть вашего приложения, и вам нужны некоторые маршруты. Вы хотите, чтобы / указывал на ваш дом, вы хотели бы, чтобы /users имел страницу, на которой вы указываете своих пользователей или даже /users/add, чтобы иметь страницу с формой для добавления новых пользователей.

Вы могли видеть это следующим образом:

Бэкэнд-маршруты (экспресс-теги): таковы маршруты, которые конечный пользователь не должен знать или даже использовать (ваше приложение angular будет использовать их для связи с бэкэнд для работы с его данными, но конечный пользователь не будет помещать их непосредственно в браузер)).

Фундаментные маршруты (angular ones): маршрутизируются ли маршруты на разные страницы вашего приложения, и из-за этого конечные пользователи могут использовать их для доступа к некоторым частям вашего приложения напрямую.