NodeJS-如何从诺言中获取数据并导出

时间:2018-07-19 19:40:13

标签: node.js asynchronous

我正在使用knexjs查询我的数据库。问题是,我想从数据库中获取一些数据并将其导出,以便可以在其他文件中使用它。有我的代码:

async function ebay() {
  return new Promise(function(resolve, reject) {
    db.select("*")
      .from("ebay_site_credentials")
      .then(data => {
        var z = {
          name: data[0].name,
          pass: data[0].pass
        };

        resolve(z);
      })
      .catch(err => {
        console.log(err);
      });
  });
}

async function app() {
  var a = await ebay();

  return a;
}

var a = app();
console.log(a);

我想在模块中导出clientID,secretID和base64。exports= {}

但是我得到的只是不确定的或无极的:{}

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试一下

  

注意将新的Promise转换函数的行为返回给promise。

async function app() {

  await ebay().then(DATA => {

      console.log(DATA);
      return DATA;
  }).catch(ERROR => {

     console.log('ERROR', ERROR);
     retrun ERROR;
  });

}

答案 1 :(得分:0)

您可能会得到:

Promise { <pending> }

您可以做的可能是这样的:

async function app(cb) {
    let a = await ebay();
    cb(a);
}

app(a => console.log(a)); //you can export out the a inside the callback