Я пытаюсь обновить несколько записей с помощью одного запроса пут, используя службу Angular HTTP, которая, в свою очередь, использует API-интерфейс Node JS Express, который обрабатывает запрос PUT.Но до сих пор примеры, которые я видел в Интернете, ссылаются на обновление одной записи посредством запроса пут.Но вместо этого я хочу передать массив объектов в запрос Put из службы Angular Http, и он должен иметь возможность читать эту коллекцию в Node JS API.До сих пор я передавал один единственный объект как часть запроса, и я мог прочитать его свойства через "req.body.propertyname".Может ли он прочитать весь массив, который я хочу передать?
Допустим, это мой код на Angular для обновления одной книги с помощью запроса пут, как показано ниже:
updateBook (updatedBook: Book): Observable {return this.http.put (/api/books/${updatedBook.bookID}
, updatedBook, {headers: new HttpHeaders ({'Content-Type': 'application / json'})});}
На Node js front он может читать переданный объект книги со стороны клиента (Angular), как показано ниже:
.put (function (req, res) {
var data = getBookData();
var matchingBooks = data.filter(function(item) {
return item.bookID == req.params.id;
});
if(matchingBooks.length === 0) {
res.sendStatus(404);
} else {
var bookToUpdate = matchingBooks[0];
bookToUpdate.title = req.body.title;
bookToUpdate.author = req.body.author;
bookToUpdate.publicationYear = req.body.publicationYear;
saveBookData(data);
res.sendStatus(204);
}
});
У меня вопрос, могу ли я передать коллекцию книг сразу, чтобы все они обновлялись одним запросом?
updateBook (updatedBooks: Book []): Observable {return this.http.put (/api/books
, updatedBooks, {headers: new HttpHeaders ({'Content-Type': 'application / json'})});}
Если да, то как Node JS мог бы даже прочитать этот массивпередано от клиента. Будет ли req.body содержать этот переданный массив?