Вызов пользователей из angular to node (MEAN) означает отправку только электронной почты и _id в angular

Вам нужно связать d для каждой созданной функции. Один из способов сделать это - передать его как параметр со значением по умолчанию:

lambda d=d: self.root.change_directory(d)

Теперь функция внутри функции использует этот параметр, хотя он имеет то же имя, и значение по умолчанию для который вычисляется при создании функции. Чтобы помочь вам увидеть это:

lambda bound_d=d: self.root.change_directory(bound_d)

Помните, как работают значения по умолчанию, например, для изменяемых объектов, таких как списки и dicts, потому что вы привязываете объект.

Эта идиома параметров с значениями по умолчанию достаточно распространены, но может быть неудачным, если вы исследуете параметры функции и определяете, что делать в зависимости от их присутствия. Вы можете избежать параметра с другим закрытием:

(lambda d=d: lambda: self.root.change_directory(d))()
# or
(lambda d: lambda: self.root.change_directory(d))(d)

. Еще лучше, редизайн того, как вы обрабатываете «команды», поможет здесь и должен помочь в другом месте.

1
задан Flyn Sequeira 20 January 2019 в 19:13
поделиться

2 ответа

Попробуйте использовать res.json ("JSON Object"); вместо res.send () ..

Еще попробуйте проверить БД с помощью инструмента, такого как robomongo

0
ответ дан Ido Cohen 20 January 2019 в 19:13
поделиться

Мне кажется, что это проблема. Когда вы используете метод find () в mongoose, он выдает массив. поэтому вы конвертируете этот массив в json и отправляете его с помощью res.send (). поэтому при доступе к нему с помощью Angular. это может привести к сбою и неправильному формату, поэтому попробуйте изменить код в узле js следующим образом. Вместо find () попробуйте использовать findOne () в мангусте следующим образом. Я предполагаю, что вы только собираетесь взять одного пользователя из этого запроса, верно?

// Node.js
router.get('/users/all', authenticate, (req, res) => {
User.findOne({some query}).select('firstName lastName email').then((user) => {
    res.send(user); // there was a typo I changed it too. look in the question not user it was users.
});
0
ответ дан THEWOLF 20 January 2019 в 19:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: