如何从函数返回值

时间:2017-12-07 05:26:07

标签: node.js express arangodb arangojs

我有一个ArangoDB函数,用于查询documentsinstanceCollection内的所有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调用中?

1 个答案:

答案 0 :(得分:3)

了解承诺如何运作。以下是关于如何设计它的想法。

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);
    })
});