Структура проекта приложения и сервера Angular 6

Какова правильная структура проекта при создании приложения Angular 6 и сервера API, которые совместно используют определения типов?

Пример:

На клиенте:

this.httpService.get<Hero[]>(apiUrl + '/heroes')

На сервере:

app.get('/heroes', async (req, res) => {
  const heroes: Hero[] = await db.Heroes.findAll<Hero>()
  res.status(200).send(heroes)
}

Мне нужно разделить определение Hero между проектами.

  • Должен ли я создавать свой сервер в подкаталоге приложения angular?
  • Должен ли я сначала создать свое серверное приложение, а затем как-то ссылаться на его исходный код из приложения Angular?
  • Должен ли я создавать третий проект Models, записывать туда все определения и как-то ссылаться на них?

person wizulus    schedule 18.05.2018    source источник


Ответы (1)


Вы должны иметь следующую структуру:

введите здесь описание изображения

где веб — это внешний интерфейс, а сервисы — ваши сервисы node/go.

Do I build my server in a sub-directory of the angular app?

Нет, вы можете разделить оба.

Do I build my server app first, then reference its source code somehow from the Angular app?

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

Do I build a third Models project, write all the definitions there, and somehow reference them?

Не обязательно. Вы можете иметь свои модели в самом проекте вашего узла.

I need to share the Hero definition between projects. Я настоятельно рекомендую не делать этого, потому что иногда вы не привязываете все свойства к внешнему интерфейсу. Имейте отдельный интерфейс для ваших передних моделей.

person Sajeetharan    schedule 18.05.2018
comment
Исключение составляют разные модели. Как сделать общую библиотеку для большинства? - person wizulus; 18.05.2018
comment
Вы можете использовать общую папку, чтобы использовать общие - person Sajeetharan; 18.05.2018