【问题标题】:Simple query with arangodb and nodejs使用 arangodb 和 nodejs 进行简单查询
【发布时间】:2017-11-15 15:15:43
【问题描述】:

我想在我的数据库 arangodb 中使用 nodejs 执行一个简单的查询以获得登录页面。

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 中?

感谢您的回答。

【问题讨论】:

    标签: node.js arangodb arangojs


    【解决方案1】:
    // 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()
    

    【讨论】:

      【解决方案2】:

      由于异步请求,console.log(passworddb) 行在 //key =&gt; passworddb = key 发生之前执行。因此,当您尝试记录密码时,数据库响应尚未到达。密码正确保存在 passworddb 中,你只是 console.log 太快了。你可以这样做

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

      确认分配有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-22
        • 1970-01-01
        • 1970-01-01
        • 2018-01-27
        • 2011-12-31
        • 1970-01-01
        • 1970-01-01
        • 2015-09-15
        相关资源
        最近更新 更多