Экспортировать результат асинхронной функции Realm в приложении Node + Express - PullRequest
0 голосов
/ 02 мая 2019

У меня есть экспресс-маршрут, который получает некоторые данные и возвращает JSON, например:

//-- app.js --

app.get('/info', function(req, res){
  var realm = require('./realm/realm.js')

  Realm.open(realm.config).then(realm => {
    var stuff = 'Default Value'

    let info = realm.objects('Info')
    for (let i of info) {
      stuff = i.thing
    }

    //:::::
    res.json({
      stuff: stuff
    })

  })
  .catch(error => {
    console.log(error)
  })
})

Вместо того, чтобы втиснуть все эти вещи в мою декларацию маршрута, я бы хотел, чтобы она была более модульной, как это:

//-- app.js --

app.get('/info', function(req, res){
  let info = require('./info.js').results
  res.json(info)
})

//-- info.js --

exports.results = function(callback) {
  var realm = require('./realm/realm.js')

  Realm.open(realm.config).then(realm => {
    var stuff = 'Default Value'

    let info = realm.objects('Info')
    for (let i of info) {
      stuff = i.thing
    }

    //:::::
    callback(stuff)

  })
  .catch(error => {
    console.log(error)
  })
}

Но callback никогда не срабатывает и ничто не является результатом попадания на этот маршрут. Как экспортировать результаты асинхронной функции?

...