내 GET 요청이 작동하지만 PUT 요청이 실행되지 않는 것 같습니다. Console.log 문이 내 콘솔에 표시되기 때문에 내부에있는 기능이 제대로 실행됩니다. http PUT 요청 내의 console.log 문은 Google 크롬 콘솔이나 내 터미널에 표시되지 않습니다. 각도Express with Angular : PUT 요청이 트리거되지 않는 이유는 무엇입니까?
:
getCitiesSaved(): Observable<string[]> {
return this.http.get(this.url).map((data: Response) => {
this.currentCityList = data.json().cityAlerts;
return data.json().cityAlerts;
});
}
addCity(cityName) {
let cityArr = this.currentCityList;
cityArr.push(cityName);
const body = JSON.stringify({
id: this.userId,
cityAlerts: cityArr
});
const headers = new Headers({ 'Content-Type': 'application/json' });
console.log(body);
return this.http
.put(this.url, body, { headers: headers })
.map((response: Response) => {
console.log('http put request ran in frontend');
response.json();
})
.catch((error: Response) => {
this.errorService.handleSigninError(error.json());
return Observable.throw(error.json());
});
}
익스프레스 :
router.get('/users/:id', (req, res) => {
console.log('get user info');
User.findOne({
_id: req.params.id
}).exec((err, user) => {
if (err) {
return res.status(500).json({
title: 'An error occured',
error: err
});
} else {
console.log(user);
res.status(200).json(user);
}
});
});
router.put('/:users/:id', (req, res) => {
console.log('backend triggered');
User.findOneAndUpdate(
{
_id: req.params.id
},
{ $set: { cityAlerts: req.body.cityAlerts } },
{ upsert: true },
function(err, newCityAlert) {
if (err) {
console.log(err);
} else {
console.log(newCityAlert);
res.send(newCityAlert);
}
}
);
});
내 url은 다음과 같습니다. http : // localhost : 3000/api/users/$ {this.userId}' –