如何 return 来自函数的值

How to return a value from a function

我有一个 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 调用中?

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

databasehelper.js => Return 一个承诺

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

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

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