Javascript: координация angular для получения данных из node.js

У меня есть проект, который в настоящее время работает на express.js, но я хочу добавить angular в проект для обработки внешнего интерфейса, тем самым сделав его одностраничным приложением, веб-сайт в настоящее время перезагружает весь контент с сервера при нажатии на ссылку таким образом, переделывая то, что уже было сделано. Поэтому я надеялся сделать угловую загрузку всего веб-сайта, и сервер может предоставить только ту часть, которая необходима.

У меня есть css, js, изображения и т. д. в общей папке, а html (с использованием механизма шаблонов) находится внутри папки представлений.

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

Все маршруты определены в node.js. angular может даже не знать, какие ссылки будут существовать, пока во время выполнения angular не получит ссылки из node.js во время выполнения.

Пожалуйста, как я могу этого добиться.

Примечание: angular — это просто существующая надстройка, а основная работа ведется над узлом.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Без какого-либо кода ответ будет довольно абстрактным, но вот основные шаги, которые вам нужно сделать:

  1. Вам нужно будет настроить промежуточное ПО express.static, чтобы экспресс-приложение обслуживало ваше угловое приложение (обычно index.html) и изображения:

app.use(express.static('public')) //images in here

app.use(express.static('dist')) //index.html in here

Чтобы это работало, вам нужно указать параметр --output-path во время сборки ng:

ng build --output-path ./dist

Также обратите внимание, что каждый угловой компонент имеет свою собственную таблицу стилей. Таким образом, вам придется либо переместить те стили .css, которые вы определили в таблице стилей каждого компонента, либо добавить их в файл angular.json в массиве стилей:

"styles": [
    "styles.css",
  ],

2. Измените экспресс-приложение, чтобы оно обслуживало только файл index.html. Все остальное будет обрабатываться маршрутизатором API, который будет обслуживать только данные для углового приложения:

// Set our api routes
app.use('/api', api);

// Catch all other routes and return the index file
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'dist/index.html'));
}); 
  1. Вам нужно будет настроить маршрутизатор Angular для управления навигацией между компонентами. Это будет зависеть от структуры вашего проекта, но существует множество руководств, которые помогут вам настроить его.

Дайте мне знать, если вам нужны дополнительные разъяснения.

Спасибо большое. Я попробовал это, но я не получил ожидаемого результата. это очень расстраивает. я все еще смотрю, как это сделать. Пожалуйста, у вас случайно нет идей по другому вопросу, который я разместил. stackoverflow.com/questions/55462205/…. любая помощь будет оценена.

S Mev 02.04.2019 01:41

Я ценю ваши усилия, поскольку другого ответа нет, и мне пришлось бы его принять. Еще раз спасибо

S Mev 05.06.2019 16:47

Другие вопросы по теме