Express Application Architecture, шаблонизатор или изолированный API - PullRequest
0 голосов
/ 10 мая 2019

Я создал Rest-API с Express и mongoose, теперь пришло время подключить его к Frontend, и я немного запутался, я начал создавать Frontend приложения с hbs в качестве движка шаблонов, и это работает хорошо, но Я также рассматривал React, например, и это подводит меня к моему вопросу.

Какое лучшее решение здесь? чтобы собрать все приложение в одну папку, так сказать, с помощью шаблонизатора, который позаботится о Frontend, или создать API, разместить его и затем использовать с приложением Frontend? Это вопрос предпочтения или одно лучше другого?

1 Ответ

1 голос
/ 10 мая 2019

Это действительно вопрос предпочтений.Есть много преимуществ и компромиссов для каждого метода.Вот некоторые из них:

API с одностраничным приложением

Преимущества

  • Проще сделать более динамичное приложение
  • С помощью API вы можете позволить сторонним разработчикам легко интегрироваться с вашим приложением
  • Быстро - после первоначальной загрузки приложения необходимо передавать только данные!
  • API и разделение внешнего интерфейса могут помочьхранить бизнес-логику в одном месте (на сервере)
  • Офлайн и кэширование легко!

Недостатки

  • SEO isnэто не так просто (но все еще очень возможно)
  • Медленно - если ваше приложение большое, начальная скорость загрузки может быть медленной (для этого есть множество решений)

Многостраничное приложение

Преимущества

  • Быстро (загрузка страницы может быть быстрее)
  • SEO немного проще
  • Более безопасный по умолчанию (благодаря межсайтовому скриптингу на SPA)

Недостатки

  • Медленно -в отличие от SPA, вы должны загружать каждую страницу
  • Сложнее построить и отладить

Это ни в коем случае не исчерпывающий список компромиссов, но, надеюсь, он поможет вам сделатьобоснованное решение.Лично я предпочитаю подход SPA, потому что у меня есть несколько сайтов / приложений, использующих один бэкэнд, а также простота разработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...