Я не могу понять, почему мои значения не передаются от угловой службы к вызову express / mongoose PATCH. Он попадает в документ в таблице, но обновляет currentBid до null, а lastBidTimeStamp и bidderId не обновляются.
Если я использую почтальон, как это:
https://postimg.cc/1nQnX3zK
Эти два значения тоже не обновляются. Только актуальные ставки в почтальоне.
Я сделал console.log (lastBidTimeStamp) в сервисе, и он правильно вывел дату, поэтому он получает значение в сервисе.
Не уверен, что я делаю неправильно. Все еще учусь. Любая помощь приветствуется.
bidding.service.ts
import { Injectable } from '@angular/core';
import { HttpClient, HttpParams } from '@angular/common/http';
import { Router } from '@angular/router';
import { Subject } from 'rxjs';
import { Bidding } from './bidding.model';
@Injectable({ providedIn: 'root' })
export class BiddingService {
constructor(private http: HttpClient, private router: Router) { }
submitBid(auctionId: string, currentBid: string, lastBidTimeStamp: Date, userId: string) {
const bidding: Bidding = {
id: auctionId,
bidderId: userId,
lastBidTimeStamp: lastBidTimeStamp,
bidValue: currentBid
};
return this.http.patch(`http://localhost:3000/api/listings/${bidding.id}`, bidding,
);
}
}
app.js
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
res.header("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, DELETE, OPTIONS");
next();
});
app.patch('/api/listings/:id', (req, res) =>
Post.update(
{id: req.query.id},
{currentBid: req.body.currentBid},
{lastBidTimeStamp: req.body.lastBidTimeStamp},
// {bidderId: req.userData.userId}
).then( user => {
console.log(user);
res.json(user);
// res.sendStatus(200);
})
.then( user => {
console.log(res.json(user));
res.json(user);
// res.sendStatus(200);
}).catch(err => console.log(err)));