我正在尝试获取用户的位置并将其发送到我的服务器,以便可以进行一些api调用。我得到了用户的当前位置,这很好,但是它不会发布到服务器,也不知道为什么。您能看一下我的代码并帮助我弄清楚吗。
后端
index.routes.js
router.post('/currentLatLong', ctrlEvent.currentLatLong);
event.controller.js
module.exports.currentLatLong = (req, res) => {
console.log('recieved');
this.currentLoc = req.body;
console.log('this.currentLoc', this.currentLoc);
}
前端
服务
constructor(private data: DataService, private http: HttpClient) { }
getUserLocation() {
/* locate the User */
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(position => {
this.currentLat = position.coords.latitude;
this.currentLng = position.coords.longitude;
console.log('position.coords.latitude', this.currentLat);
this.data.latitudeSource.next(this.currentLat);
this.data.longitudeSource.next(this.currentLng);
const currentLatLong = {
latitude: this.currentLat,
longitude: this.currentLng
};
console.log('currentLatLong', currentLatLong);
return this.http.post(environment.apiBaseUrl + '/currentLatLong',
currentLatLong);
}, err => {
console.log(err);
return false;
});
} else {
console.log('bad');
return false;
}
}
答案 0 :(得分:1)
在有角度的一面,您需要调用subscribe()
方法。调用subscribe()
方法将执行observable,这是发起请求的原因。
this.http.post(environment.apiBaseUrl + '/currentLatLong', currentLatLong)
.subscribe(
res => {
console.log(res);
},
err => {
console.log(err);
}
);
在您对该方法返回的可观察对象上调用subscribe()之前,HttpClient方法不会开始其HTTP请求。