Я создаю приложение node.js с помощью Express, я размещаю Angular SPA в общей папке.
Приложение работает, и хостинг работает нормально, когда я использую угловой маршрутизатор для навигации по сайту, но когда я пытаюсь получить прямой доступ к ссылке, например: http://192.168.1.4:3000/posts, весь текст сайта просто объект ответа JSON, без приложения
это код Node.js, обрабатывающий запрос get
postRouter.route('/')
.options(cors.corsWithOptions, (req, res) => {
res.sendStatus(200);
})
.get(cors.cors, (req, res, next) => {
posts.find({})
.then((post) => {
res.status(200);
res.setHeader('Content-Type', 'application/json')
res.send(post);
}, (err) => next(err))
.catch((err) => next(err));
})
это мой угловой сервис, отправляющий запрос на получение
getPosts(): Observable<Post[]> {
return this.http.get(baseURL + 'posts')
.catch(error => { return this.processHttpService.handleError(error); });
}
Почтовый компонент .ts файл
ngOnInit() {
this.postService.getPosts()
.subscribe(posts => { this.posts = posts, console.log(this.posts); },
errmess => this.errMess = <any>errmess);
}
Опять же, когда я использую свое клиентское приложение Angular 5, размещенное в общедоступной папке, созданное с помощью ng build --prod
, объект JSON извлекается из базы данных mongodb и правильно отображается на моем веб-сайте вместе с остальной частью приложения, верхний колонтитул, тело и нижний колонтитул.
также стоит отметить, что console.log в ngOnInit () не отображается в браузере при использовании прямой ссылки.
Любой совет / исправление приветствуется