Я строю свои внешние проекты на angular, back-end в nodejs.
Я отправляю POST-запрос на сервер (экспресс, паспорт) из angular (HttpClient), сервер отправляет мне ответ путем перенаправления в какой-либо каталог, но angular не перенаправляет меня.
Мне нужно обрабатывать ответы с сервера по угловым, или я что-то не знаю?
nodejs - app.js:
app.use('/', express.static(path.join(__dirname, '/dist/practice/')));
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname, '/dist/practice/index.html'));
});
app.use('/', router); // this is base siting on nodejs
маршрутизаторы nodejs:
router.post('/login', (req, res, next) => {
passport.authenticate('local', {
successRedirect : '/profile',
failureRedirect : '/error',
failureFlash : true
})(req, res, next);
});
// это метод POST от углового:
postData(user) {
return this.http.post('/login', user, {responseType: 'text', observe: 'response'});
}
// это функция для обработки POST-обработки на компоненте по углу:
onSubmit(){
this.httpService.postData(JSON.stringify(this.user))
.subscribe(res => {
console.log(res)
},
error => console.log(error)
);
}
Это маршрут на угловой:
some imports....
import { Routes, RouterModule } from '@angular/router';
const appRoutes: Routes = [
{path: '', component: AppComponent},
{path: 'profile', component: ProfileComponent},
{path: 'login', component: LoginComponent},
{path: '**', component: NotFoundComponent}
]
@NgModule({
declarations: [
AppComponent,
LoginComponent,
MySheetComponent,
ProfileComponent,
NotFoundComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
MatButtonModule,
MatBottomSheetModule,
MatInputModule,
MatFormFieldModule,
ReactiveFormsModule,
FormsModule,
HttpClientModule,
RouterModule.forRoot(appRoutes)
],
entryComponents: [
LoginComponent,
MySheetComponent
],
providers: [HTTPService],
bootstrap: [AppComponent]
})
export class AppModule { }