В моем сервисе есть функция, которая получает текущее местоположение пользователя (широта / долгота).Я пытаюсь отправить широту и долготу на мой сервер, чтобы добавить их в запрос.Тем не менее, мой почтовый запрос не работает.Я включил свой модуль appInitializer, чтобы показать, как вызывается эта функция.
eventServer.js
router.get('/ticketmaster-events', (req, res) => {
/* adding it to this query */
axios.get('http://app.ticketmaster.com/discovery/v2/events.json?apikey=hneV7jzq6Uz7IyQC7GtEHz5s2nTsU6Jm&size=200')
.then(res2 => {
res.send(res2.data._embedded.events)
})
.catch(err => res.send(err))
});
router.route('/currentLatLong').post((req, res, next) => {
console.log("hello this test")
try{
res.end("response is " + req.body);
console.log(req);
}
catch(err) {
res.send(err);
}
});
google.service.ts
export class GoogleService {
uri = 'http://localhost:4000';
public currentLat: number;
public currentLng: number;
public currentLatLong: any = [];
getUserLocation() {
/* locate the User */
if (navigator.geolocation) {
console.log('good');
navigator.geolocation.getCurrentPosition(position => {
this.currentLat = position.coords.latitude;
this.currentLng = position.coords.longitude;
this.data.latitudeSource.next(this.currentLat);
this.data.longitudeSource.next(this.currentLng);
const currentLatLong = {
latitude : this.currentLat,
longitude: this.currentLng
};
console.log(currentLatLong);
return this.http.post(`${this.uri}/currentLatLong`, JSON.stringify(currentLatLong)/* , {
headers: new HttpHeaders({'Content-Type': 'application-json'})} */
).subscribe(response => {
console.log('your response is here', JSON.stringify(response));
},
error => {
console.log('error occoured', error);
});
});
} else {
console.log('bad');
}
}
constructor(private data: DataService, private http: HttpClient) { }
}
appInitializer.module.ts
import { NgModule, APP_INITIALIZER } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { TicketMasterService } from '../../services/tmService/ticket-master.service';
import { GoogleService } from '../../services/googleService/google.service';
export function fetchTmData(tmService: TicketMasterService) {
return () => tmService.fetchTmData();
}
export function getUserLocation(googleService: GoogleService) {
return () => googleService.getUserLocation();
}
@NgModule({
imports: [HttpClientModule],
providers: [
TicketMasterService,
GoogleService,
{ provide: APP_INITIALIZER, useFactory: fetchTmData, deps: [TicketMasterService], multi: true },
{ provide: APP_INITIALIZER, useFactory: getUserLocation, deps:[GoogleService], multi: true }
]
})
export class AppLoadModule { }