问题描述
我在我的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.connect
和conn.exec
中,但无济于事!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)