Node.js 使用arangodb和nodejs进行简单查询

Node.js 使用arangodb和nodejs进行简单查询,node.js,arangodb,arangojs,Node.js,Arangodb,Arangojs,我想用nodejs在我的数据库arangodb中为登录页面执行一个简单的查询 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;

我想用nodejs在我的数据库arangodb中为登录页面执行一个简单的查询

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中是异步的

Console.write(passworddb)返回“未定义” 并且在console.log('key:',key)之后正确返回密钥。。。两次

我的问题是:如何在arangodb中只获取密码(什么是一次性请求的查询)以及如何在我的var中存储该值

感谢您的回答。

由于异步请求,在执行
//key=>passworddb=key
之前,会执行
console.log(passworddb)
行。因此,当您尝试记录密码时,db响应尚未到达。密码正确地保存在passworddb中,您只是太早了。你可以

key => {
  passworddb = key;
  console.log(passworddb);
}
确认任务有效。

//arango所需的软件包
// required package for arango
const arangojs = require('arangojs');

   //sample function
   async function main(){
       DB = new arangojs.Database({ url: <arango_url> });
       DB.useDatabase(<arango_db_name>);
       DB.useBasicAuth(<arango_db_username>, <arango_db_password>);
       const data = await DB.query('RETURN LENGTH(<arango_collection_anme>)')
       console.log("result", data._result)
   }
   main()
const arangojs=require('arangojs'); //样本函数 异步函数main(){ DB=新的arangojs.Database({url:}); useDatabase(); 数据库useBasicAuth(,); const data=await DB.query('RETURN LENGTH()')) console.log(“结果”,数据._结果) } main()