Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 再思考DB&;nodejs:将结果保存在var中_Node.js_Rethinkdb - Fatal编程技术网

Node.js 再思考DB&;nodejs:将结果保存在var中

Node.js 再思考DB&;nodejs:将结果保存在var中,node.js,rethinkdb,Node.js,Rethinkdb,是否可以将数据库的查询结果保存在变量中 像这样 var test = r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) { return passeggers('nome').eq('pigi'); })).run() 现在我用这个方法 var test; r.db('chat').table('group_chat').count(r.row('passe

是否可以将数据库的查询结果保存在变量中

像这样

var test = r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) {
   return passeggers('nome').eq('pigi');
 })).run()
现在我用这个方法

var test;

r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) {
   return passeggers('nome').eq('pigi');
 })).run().then(function(response){
    test = response;
})

如果您不喜欢使用承诺,并且正在使用最新版本的ECMAScript,那么可以使用,它提供了语法糖,让您可以像编写同步代码一样编写异步代码

您可以这样重写您的示例:

async function getTest() {
    var test = await r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) {
        return passeggers('nome').eq('pigi');
    })).run();
    return test;
}

请注意,“在幕后”,这仍然使用承诺,但它使代码更易于阅读和理解。

如果您不喜欢使用承诺,并且正在使用最新版本的ECMAScript,您可以使用,它提供了语法糖,让您可以像编写同步代码一样编写异步代码

您可以这样重写您的示例:

async function getTest() {
    var test = await r.db('chat').table('group_chat').count(r.row('passengers').contains(function(passeggers) {
        return passeggers('nome').eq('pigi');
    })).run();
    return test;
}

请注意,“在幕后”,这仍然使用承诺,但它使代码更易于阅读和理解。

最简单但有效的解决方案如下,使用回调

function getTest(callback) { // add callback
    r.db('chat')
     .table('group_chat')
     .count(r.row('passengers')) // you forgot closing brace here
     .contains(function(passeggers) { 
       return passeggers('nome').eq('pigi') 
     })
     .run()
     .then(function(result) {
       callback(null, result); // call callback with result
     })
     .error(function(err) {
       callback(err, null);  // call callback with error
     });
}

getTest(function(err, result) { // invoke callback
  if (err) throw err;

  console.log(result)
  var test = result; // note: you can use test variable only inside this call
})

最简单但有效的解决方案如下,使用回调

function getTest(callback) { // add callback
    r.db('chat')
     .table('group_chat')
     .count(r.row('passengers')) // you forgot closing brace here
     .contains(function(passeggers) { 
       return passeggers('nome').eq('pigi') 
     })
     .run()
     .then(function(result) {
       callback(null, result); // call callback with result
     })
     .error(function(err) {
       callback(err, null);  // call callback with error
     });
}

getTest(function(err, result) { // invoke callback
  if (err) throw err;

  console.log(result)
  var test = result; // note: you can use test variable only inside this call
})