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

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

Когда у вас есть стек MEAN, кажется, что маршруты могут обрабатываться как Express.js, так и 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');
});

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

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

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


person Lars Holdgaard    schedule 20.07.2014    source источник


Ответы (1)


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

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

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

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

Вы могли видеть это так:

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

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

person Jesus Rodriguez    schedule 20.07.2014
comment
Express.js может обрабатывать шаблон рендеринга, а не только грубую информацию, поэтому это означает, что angular бесполезен. Например. в PHP я могу использовать Slim Framework, чтобы просто писать маршруты API, или я могу создать с его помощью полноценное веб-приложение. - person Mohammad Sharaf Ali; 09.06.2016
comment
Это старый ответ, но в любом случае. Каков наилучший способ скрыть внутренние экспресс-маршруты от пользователя, чтобы при доступе к ним в браузере он возвращал 404? - person mikebrsv; 30.09.2017
comment
ты получил ответ на свой комментарий @mikebrsv - person Jithin; 20.08.2019