Получить значение ключа из ответа маршрутизатора? - PullRequest
1 голос
/ 12 июля 2019

Когда я ищу пользователя по электронной почте, я получаю ответ от схемы USER, но дело в том, что мне не нужен весь набор данных, я просто хочу одно поле balance.

маршруты / пользователи.js

//show balance
router.post('/balance',passport.authenticate('jwt', {session : false}) , (req, res, next) => {

  const email = req.body.email;
  User.find({email} , (err, users) => {

      if(err){
      return res.send({
          success: false,
          message: 'Error while retrieving the balance'
      });
  }

  return res.send({

    users

  });
});
});

Ответ сервера, который я получаю

{
    "users": [
        {
            "_id": "5d276ccccd1f520394e29bd7",
            "name": "george",
            "email": "fake@fake.com",
            "password": "$2a$10$w967rx9ZN50W0kQCE4X8IO/eGGS2YsXlbYgdjC7Sns380IbGbqvlS",
            "balance": 1000,
            "__v": 0
        }
    ]
}

Как видите, я хочу только этого:

balance": 1000

Ответы [ 2 ]

0 голосов
/ 13 июля 2019

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

// show balance
router.post('/balance',passport.authenticate('jwt', {session : false}) , (req, res, next) => {
  const { email } = req.body;
  User.findOne({ email }).select('balance').lean().exec((err, user) => {
      if (err) {
        return res.send({
            success: false,
            message: 'Error while retrieving the balance'
        });
      }

    const { balance } = user;
    return res.send({
      balance,
    });
  });
});

Надеюсь, это поможет

0 голосов
/ 12 июля 2019

вы можете использовать select, если вы используете mongoose модель

User.find({}).select('Balance')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...