Angular JS — экспресс-маршрутизация

Я использую структуру MEAN с экспресс-запросами маршрутизации. У меня есть два основных маршрута к public/ и app.

APP является API, а public — набором веб-страниц, которые считывают данные из API.

// Setting the app router and static folder
app.use(express.static(path.resolve('./public')));

У меня есть два контроллера в общей папке, home и header.

В домашнем контроллере я использую Angular JS для вызова API и возврата результатов.

API позволяет фильтровать с помощью строк запроса:

$http.get('http://search?sumBoth=1&customer=' + customer)

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

http://url/customers/CustomerName

Где CustomerName будет установлено как переменная клиента

Вопрос

а) Это лучше всего сделать в Angular или Express? б) Где и как реализовать такую ​​маршрутизацию?

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


person CMS    schedule 21.09.2015    source источник


Ответы (1)


Насколько я понимаю, ответ $http.get('http://host/path?sumBoth=1&customer=' + customer) представляет собой список результатов поиска. В этом случае путь должен быть путем коллекции, на самом деле не рекомендуется иметь условия поиска в пути. Пути к подколлекциям довольно стандартны (что-то вроде http://host/customers/search?params, но все же конкретные условия поиска должны идти в строке запроса)

Если, наоборот, вы ожидаете получить только один результат по какому-то идентификатору (при условии, например, что имя клиента уникально), это совсем другая история, вам действительно следует использовать http://host/customers/:identifier.

В любом случае вы можете использовать ресурсы angular, обе части вашего приложения должны знать о маршрутизации. Во внешнем интерфейсе вы определяете дополнительный глагол, который добавляет фильтры (или просто используете стандартный query — см. https://docs.angularjs.org/api/ngResource/service/$resource). В бэкенде вам нужно маршрутизировать вызов и анализировать параметры. Если это список, проанализируйте строку запроса и отобразите массив результатов, если это один ресурс, проанализируйте идентификатор, найдите соответствующий ресурс и отобразите его обратно.

person rewritten    schedule 21.09.2015