Node.JS / MongoDB Я не могу получить доступ к значению объекта - PullRequest
0 голосов
/ 20 января 2020

Мне нужна помощь с моим NodeJs проектом.

Я пытаюсь проверить имя продавца и затем получить его внутреннюю «поддержку», чтобы установить newOrder.support в качестве seller.support.

По какой-то причине это не работает, и я понятия не имею, почему. console.log(support) внутри findOne() показывает правильное значение, но console.log(support), который есть у меня перед моим newOrder = new Order({}), показывает, что значение / тип данных равно 'undefined', поэтому моя база данных хранит данные без значение поддержки.

Не могли бы вы, ребята, помочь мне с этим? Заранее спасибо.

    let support;
    User.findOne({
        fullName: seller
    }, function (err, user) {
        support = user.support;
        console.log(support);
    })

1 Ответ

0 голосов
/ 21 января 2020

⚠️ Вы не можете установить значение support внутри Обещания и затем получить к ним доступ снаружи («Из своего кода»).

? Итак, если вы хотите получить доступ к своему значению там, где вы находитесь используя findOne, попробуйте использовать async/await

Если вы используете в MongoDB, вы можете попробовать этот код ниже.

? Вариант 1: Внутри соединения mongoDB

От mays, он работает с этим кодом ниже: Только добавьте async/await.

MongoClient.connect('mongodb://localhost:27017', async (error, client) => {
  if(error) throw new Error(error);

  const db = client.db('blog_dev');
  const collection = db.collection('users');

  // start from here your async await
  let support = await collection.findOne({ fullName: 'Seller'});

  // you can get support now
  console.log(support);
})

? Вариант 2: Из вашего кода

Например, ваш код внутри yourFunction (), затем вы можете использовать код ниже:

async function yourFunction() {
  const support = await User.findOne({ fullName: 'seller'});
  console.log(support);
}

Я надеюсь, что это может помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...