2

我有一个 ArangoDB 函数,可以查询里面documents的所有内容:instanceCollectiondatabasehelper.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 调用中?

4

1 回答 1

3

了解 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);
    })
});
于 2017-12-07T05:43:23.963 回答