异步/等待发布请求-Node.js

时间:2018-06-19 16:13:31

标签: node.js express

在继续执行其余的POST请求之前,我需要进行数据库调用并等待响应(在这种情况下,等待诺言得到实现)。

app.post("/charge", (req, res) => {
  var user_stripe_id = await queries.get_stripe_id_by_email(req.body.token.email);
}

但是我无法等待查询,因为我不在异步函数中。如何使app.post异步?

在其他路线上,我已经这样做

app.get('/', async function (req, res) {
  const leagues = await distinctLeagues();
  res.render('home', { leagues: leagues });
});

但是我想知道如何使用箭头函数语法。

1 个答案:

答案 0 :(得分:3)

您可以在es6中创建一个async函数,如下所示:

app.post("/charge", async (req, res) => {
  var user_stripe_id = await queries.get_stripe_id_by_email(req.body.token.email);
}

这是异步等待的理想用法,在try-catch中使用它。由承诺解决的值将分配给quote,如果承诺被拒绝,将执行catch块。

async function main() {
  try {
    var quote = await getQuote();
    console.log(quote);
  } catch (error) {
    console.error(error);
  }
}