Изменение значения переменной внутри MongoClient.connect

151
23 января 2019, 03:40

У меня имеется ф-я collections, которая подключается к mongodb и подтягивает имена всех коллекций

  collections(){
let tempOptions = {
  reply_markup: {
    inline_keyboard: [[]],
    },
  };
MongoClient.connect("mongodb://localhost:27017/",{useNewUrlParser:true},function(err,db){
    const _db = db.db('test');
    _db.listCollections().toArray(function(err,res){
    if (res)
      for (let i in res)
        tempOptions.reply_markup.inline_keyboard[0].push([{text:res[i].name,callback_data:res[i].name}]);
  });
 });
 return tempOptions;
};

Однако tempOptions возвращается в исходном состоянии без изменений. Не могу понять почему, и как это исправить.

Answer 1

Решил таким образом, но есть ощущение большущего костыля.

collections(){
    let tempOptions = {
      reply_markup: {
        inline_keyboard: [[]],
        },
      };
    return MongoClient.connect("mongodb://localhost:27017/",{useNewUrlParser:true}).then(conn => {
        return conn.db("test").listCollections().toArray().then(res=>{
          for (let i in res)
           tempOptions.reply_markup.inline_keyboard[0].push({text:res[i].toString(),callback_data:res[i].toString()});
          return tempOptions;
        });
      });
   };
READ ALSO
Восстановление таблицы в базе InnoDB MySQL 5.6

Восстановление таблицы в базе InnoDB MySQL 5.6

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

165
JSON_VALUE возвращает ошибку

JSON_VALUE возвращает ошибку

Имею такую структуру json в поле payload

154
Не могу связать две таблицы - ошибка “Cannot add foreign key constraint”

Не могу связать две таблицы - ошибка “Cannot add foreign key constraint”

В первой таблице стараюсь связать две другие по id, но получаю ошибку:

176
Как расположить блоки в колонну при масштабировании?

Как расположить блоки в колонну при масштабировании?

Учусь верстать адаптивные сайтыНа макете есть блок с 3 div по горизонтали

173