【问题标题】:How to return a value from a function如何从函数中返回值
【发布时间】:2017-12-07 05:26:06
【问题描述】:

我有一个 ArangoDB 函数,可以查询 instanceCollection 中的所有 documents,在 databasehelper.js 内部:

listInstances = function listInstances() {
    var instances = db.query(aqlQuery`
    FOR doc in instanceCollection
    RETURN doc
    `).then(
        cursor => cursor.all()
    ).then(
        result => {
            return result;
        }
    )
    return instances;
}

另外,我想使用此函数将 JSON 查询反映到 Express API:

app.get('/', function(req, res) {
    var allInstances = databasehelper.listInstances();
    res.send(allInstances);
});

api 结果只是一个空的 JSON {}。 如何将 ArangoDB 查询的结果反映到我的 Express API 调用中?

【问题讨论】:

    标签: node.js express arangodb arangojs


    【解决方案1】:

    了解 Promise 的工作原理。以下是关于它应该如何设计的想法。

    databasehelper.js => 返回一个承诺

    listInstances = function listInstances() {
        return db.query(`some query`)
        .then(cursor => cursor.all())
    }
    

    在路由中,=> 从 promise 中获取数据

    app.get('/', function(req, res) {
        databasehelper.listInstances()
        .then(result => {
            res.send(result);
        })
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 2020-03-09
      • 2019-12-06
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多