Express.js или ъглов за обработка на маршрути в 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 да грабне всички ваши потребители. Всички тези маршрути, AKA CRUD маршрути и маршрути за удостоверяване отиват в express.js рутер. Защо там? Защото това са маршрути на бекенда.

От друга страна, имате вашето ъглово приложение, което съдържа визуалната част на вашето приложение и там искате някои маршрути. Искате / да сочи към вашия дом, бихте искали /users да има страница, където изброявате вашите потребители или дори /users/add да има страница с формуляр за добавяне на нови потребители.

Можете да го видите по следния начин:

Бекенд маршрути (експресни): Това са маршрутите, за които крайният потребител няма да трябва да знае или дори да ги използва (вашето angular приложение ще ги използва, за да комуникира с бекенда, за да работи с неговите данни, но крайният потребител не би поставете ги директно в браузъра)).

Маршрути на предния край (ъглови): Са маршрутите, които се картографират към различни страници на вашето приложение и поради това крайните потребители могат да ги използват за директен достъп до някои части на вашето приложение.

person Jesus Rodriguez    schedule 20.07.2014
comment
Express.js може да обработва шаблон за изобразяване, освен просто crud, така че това означава, че 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