简单的查询与arangodb和nodejs

我想执行一个简单的查询在我的数据库arangodb与nodejs的login页面。

var arango = require('arangojs'); /*---*/ Database = arango.Database; db = new Database('http://127.0.0.1:8529'); db.useDatabase('MyDB'); db.useBasicAuth('root', 'root'); /*---*/ //Post Methods var username; var passworddb; //Login method app.post('/', function (request, response) { username = request.body.user.name; db.query('FOR u IN User FILTER u.firstname == "'+username+'" RETURN u.password').then( cursor => cursor.all() ).then( key => console.log('key:', key), //key => passworddb = key, err => console.error('Failed to execute query') ); console.log(passworddb) }); 

它的工作,但我不能保存在我的var passworddb密钥的结果…我不承认…在arangodb请求是asynchronous的

Console.write(passworddb)返回“undefined”,并在console.log('key:',key)正确返回键…两次。

我的问题是:我怎么能只有密码在arangodb(什么是一次请求的查询),以及如何将值存储在我的var?

谢谢您的回答。

console.log(passworddb)行在//key => passworddb = key之前被执行,因为asynchronous请求。 所以当你尝试logging密码时,数据库响应还没有到达。 passworddb正确保存在passworddb中,你只是console.log太快了。 你可以做

 key => { passworddb = key; console.log(passworddb); } 

确认作业是否有效。