2015-07-07 1 views
0

У меня есть некоторое представление об этом, но я все еще чувствую, что чего-то не хватает. Это то, что я понимаю до сих пор: app.get()/app.post() используются для совершения AJAX-вызовов на сервере в первую очередь. В то время как Routes используются для создания API-интерфейсов, которые в основном используются для связи с DB/backend.ExpressJS: Разница между app.get() v/s api.get()/Router.get()

Может ли кто-нибудь уточнить это, если есть больше различий?

+1

Нет, это не так. Все это просто разные способы привязки функции обратного вызова к определенному запросу пути на вашем HTTP-сервере. Каждый из них является маршрутом. Объект маршрутизатора - это средство сбора группы разных обработчиков маршрутов в один объект, но данный обработчик маршрута в маршрутизаторе не имеет других функций, кроме заданного обработчика маршрута, установленного через 'app.get()'.Это просто разные способы организации обработчиков маршрутов. Ни один из них не имеет ничего общего с API. – jfriend00

+0

Это означает, что я могу использовать приложение или маршрут для создания API-интерфейсов. Если нет, когда использовать приложение() и когда использовать Router. В моем приложении, если вы использовали приложение() для обработки файлов, когда URI в браузере меняется и с помощью Router() для отдыха. –

+0

Как говорили другие, маршрутизатор - это всего лишь средство группировки пучков обработчиков маршрутов (например, объект контроллера в других системах). Вы должны использовать маршрутизатор, когда ваша организация кода выигрывает от группировки группы обработчиков маршрута вместе в общий объект. Вы также можете использовать маршрутизаторы для подпутей и сделать таким образом более модульный код. Но маршрутизатор - это в основном инструмент организации кода, который вы можете использовать, когда найдете его полезным. – jfriend00

ответ

0

Маршрутизаторы дают вашим маршрутам уровень гнездования. Вы можете рассматривать их как «контроллеры» в более традиционных приложениях MVC (где фактические маршруты маршрутизатора - это методы на контроллере).

Вы можете определить объект Router будет привязан к /foo/bar, и каждый .get().post или .use() вы будете иметь там будет находиться под /foo/bar пути, независимо.

Это полезно для повторного использования компонентов, потому что сам маршрут внутренних маршрутов не знает, по какому пути он был вызван. Таким образом, вы можете повторно использовать одну и ту же схему маршрута во многих приложениях под разными путями.

Я стараюсь всегда использовать объекты маршрутизатора (даже если это только один, а для /), потому что он делает код более понятным и более организованным.

0

Вы создали какую-либо форму с помощью метода get и post, если не создаете оба чувства поведения.

Экспресс Маршрут метод app.get() это через эту функцию можно создавать GET апи, который может легко открыть с помощью браузера и получить данные из строки запроса.

app.post() это создаст почтовый адрес, который вы также можете получить от тела.

0

Не совсем. На самом деле это, по сути, одно и то же. Маршруты просто более многоразовые/проверяемые, чем просто использование экземпляра app.

Например:

app.get('/Posts/:id', ... 

эквивалентно

var route = new Router(); 
route.get('/:id', ... 

app.use('/Posts', route); 

Там нет никаких ограничений на то, что вы можете сделать в пути против приложения, так что не думаю о них отдельно от функционального уровня , Это важнее для хорошей архитектуры/тестирования/и т. Д.