AdonisJS无法返回函数内的响应SAP HANA

问题描述

我在我的AdonisJS项目中使用SAP HANA CLIENT for NodeJS。我无法从连接到数据库的函数以json格式返回响应。这是代码

首先调用控制器方法validateInvoice

async validateInvoice({request,response}) {
  const req = request.all()
  const inv_num = req.invoice_num;
  const data = await this.fetchInvStatus(inv_num);
  return response.json({success: true,data: data});
}

这又调用了fetchInvStatus方法,该方法实际上连接到HANA DB

var conn = hana.createConnection();
var conn_params = {
  serverNode: '127.0.0.1:30015',uid: 'CUST_USER_ROLE_ADMIN',pwd: 'Welcome@1234',database: 'DED'
};

conn.connect(conn_params,(err) => {
  if(err) {
    return err;
  }
  conn.exec("Select * FROM SAPDED.YACSF_RRHD where INVOICE_NUMBER = ?",['BOMT000005'],(err,result) => {
    if (err) {
      return err;
    }
    console.log(result);
    return result;
  })
});

在控制台中,我可以看到结果,但是该结果没有传递给validateInvoice方法,因此API可以返回响应。

第一个方法response.json()中的行甚至在返回DB中的数据之前执行。我该如何克服这个问题?我尝试将return语句添加到conn.connectconn.exec中,但无济于事!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)