Я использую следующий код ..
// Node.js
router.get('/users/all', authenticate, (req, res) => {
User.find({some query}).select('firstName lastName email').then((users) => {
res.send(users);
});
//Angular Service
let opts = { headers: this.getCommonHeaders(), params: new HttpParams() };
return this.http.get(getUserDataUrl, opts)
.pipe(
map(response => {
// here is the problem
console.log(response.json());
return response.json()
}),
catchError(this.handleErrors)
);
В заголовках опций я упомянул тип данных:
getCommonHeaders() {
return new HttpHeaders({
'Content-Type': 'application/json',
'x-auth': this.getToken()
})
}
В console.log (response.json ()) я получаю только электронную почту и _id в объекте массива. При добавлении того же console.log (user) в node.js перед res.send (user) отображаются все данные с именами firstName и lastName
Затем я добавил .lean () в функцию User. это позволило появиться остальным firstName и lastName. Как получить все данные без преобразования их в простые объекты?