Node + Express App中领域异步功能的导出结果

时间:2019-05-01 22:50:40

标签: node.js express commonjs realm-js

我有一条Express路由,可以获取一些数据并返回一些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永远不会触发,打那条路线也不会有任何结果。如何导出异步函数的结果?

0 个答案:

没有答案