我有一个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调用中?
答案 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);
})
});