我有一个arangodb函数,它查询documents中的所有instanceCollection,在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=>返回承诺

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

在这个过程中,=>从承诺中获取数据
app.get('/', function(req, res) {
    databasehelper.listInstances()
    .then(result => {
        res.send(result);
    })
});

关于node.js - 如何从函数返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47688173/

10-10 14:51